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 参数支持 DBFSS3 路径。

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 文件

Azure Databricks SparkSQL 是不是支持递归查询

无法在Databricks中为ADLS Gen2创建安装点

DataBricks - 将更改保存回 DataLake (ADLS Gen2)