Azure Databricks - 从 Gen2 Data Lake Storage 运行 Spark Jar
Posted
技术标签:
【中文标题】Azure Databricks - 从 Gen2 Data Lake Storage 运行 Spark Jar【英文标题】:Azure Databrics - Running a Spark Jar from Gen2 DataLake Storage 【发布时间】:2020-01-13 01:14:26 【问题描述】:我正在尝试从 Azure Databrics 运行 spark-submit。目前我可以创建一个作业,将 jar 上传到 Databrics 工作区中,然后运行它。
我的查询是:
有没有办法访问 GEN2 DataLake 存储上的 jar 并从 Databrics 工作区甚至从 Azure ADF 进行 spark-submit? (因为工作区和 GEN2 存储之间的通信受到保护“fs.azure.account.key”)
有没有办法从 databrics 笔记本进行 spark-submit?
【问题讨论】:
您可以安排 databricks 笔记本。见docs.databricks.com/user-guide/jobs.html#run-a-job 和docs.databricks.com/user-guide/notebooks/… 我已经这样做了。 (我在第一行写了。)我正在寻找一种方法来专门做第 1 点和第 2 点。您能对此提出建议或评论吗? 【参考方案1】:有没有办法访问驻留在 GEN2 DataLake 存储和 从 Databrics 工作区,甚至从 Azure ADF 进行 spark-submit? (因为工作区和 GEN2 存储之间的通信是 protected "fs.azure.account.key") 不幸的是,您无法访问 jar 驻留在 Azure 存储上,例如 ADLS Gen2/Gen1 帐户。
注意: --jars、--py-files、--files 参数支持 DBFS 和 S3 路径。
Jar 库通常存储在 dbfs:/FileStore/jars 下。
您需要在dbfs中上传库并作为jar活动中的参数传递。
更多详情请参考“Transform data by running a jar activity in Azure Databricks using ADF”。
有没有办法从 databricks 笔记本进行 spark-submit?
要回答第二个问题,您可以参考以下职位类型:
参考:SparkSubmit 和“Create a job”
希望这会有所帮助。
如果这回答了您的问题,请点击“标记为答案”和“投票”。如果您有任何进一步的疑问,请告诉我们。
【讨论】:
感谢您的回复。在我的帖子中,我提到我已经能够做到这一点。想要寻找一种方法来进行正常的 Spark 提交,就像我们从脚本或 Jupyter 笔记本中所做的那样。【参考方案2】:最后我想出了如何运行它:
您可以从 ADF 运行 Databricks jar,并将其附加到现有集群,该集群将在集群中配置 adls 键。
无法从笔记本进行 spark-submit。但是你可以在jobs中创建一个spark job,或者你可以使用Databricks Run Sumbit api,来做一个spark-submit。
【讨论】:
以上是关于Azure Databricks - 从 Gen2 Data Lake Storage 运行 Spark Jar的主要内容,如果未能解决你的问题,请参考以下文章
Azure Databricks 通过服务主体访问 Azure Data Lake Storage Gen2
Azure Datalake Store Gen2 使用 scala spark 库从 Databricks 读取文件
Azure databricks - 无法使用来自 datalake 存储 gen2 服务的 spark 作业读取 .csv 文件