通过运行 Azure Databricks 中的 Jar 活动转换数据
适用于:Azure 数据工厂 Azure Synapse Analytics
管道中的 Azure Databricks Jar 活动在 Azure Databricks 群集中运行 Spark Jar。 本文基于数据转换活动一文,它概述了数据转换和受支持的转换活动。 Azure Databricks 是一个用于运行 Apache Spark 的托管平台。
使用 UI 向管道添加 Azure Databricks 的 Jar 活动
若要在管道中使用 Azure Databricks 的 Jar 活动,请完成以下步骤:
在管道“活动”窗格中搜索“Jar”,然后将 Jar 活动拖动到管道画布上。
在画布上选择新的 Jar 活动(如果尚未选择)。
选择“Azure Databricks”选项卡,选择或创建将执行 Jar 活动的新 Azure Databricks 链接服务。
选择“设置”选项卡,并指定要在 Azure Databricks 上执行的类名、要传递给 Jar 的可选参数以及要在群集上安装以执行作业的库。
Databricks Jar 活动定义
下面是 Databricks Jar 活动的示例 JSON 定义:
{
"name": "SparkJarActivity",
"type": "DatabricksSparkJar",
"linkedServiceName": {
"referenceName": "AzureDatabricks",
"type": "LinkedServiceReference"
},
"typeProperties": {
"mainClassName": "org.apache.spark.examples.SparkPi",
"parameters": [ "10" ],
"libraries": [
{
"jar": "dbfs:/docs/sparkpi.jar"
}
]
}
}
Databricks Jar 活动属性
下表描述了 JSON 定义中使用的 JSON 属性:
属性 | 描述 | 必需 |
---|---|---|
name | 管道中活动的名称。 | 是 |
description | 描述活动用途的文本。 | 否 |
type | 对于 Databricks Jar 活动,活动类型是 DatabricksSparkJar。 | 是 |
linkedServiceName | Databricks 链接服务的名称,Jar 活动在其上运行。 若要了解此链接服务,请参阅计算链接服务一文。 | 是 |
mainClassName | 类的全名,包含要执行的主要方法。 此类必须包含在作为库提供的 JAR 中。 一个 JAR 文件中可以包含多个类。 每个类都可以包含一种主要方法。 | 是 |
parameters | 将传递到主要方法的参数。 该属性是一个字符串数组。 | 否 |
库 | 要安装在将执行作业的群集上的库列表。 它可以是 <string, object> 数组 | 是(至少有一个包含 mainClassName 方法) |
注意
已知问题 - 当使用同一交互式群集来运行并发的 Databricks Jar 活动(没有重启群集)时,在 Databricks 中存在一个已知问题,即第一个活动的输入参数也会被后续活动使用。 这会导致将不正确的参数传递给后续作业。 若要缓解此问题,请改用作业群集。
databricks 活动支持的库
在前面的 Databricks 活动定义中,已指定以下库类型:jar
、egg
、maven
、pypi
和 cran
。
{
"libraries": [
{
"jar": "dbfs:/mnt/libraries/library.jar"
},
{
"egg": "dbfs:/mnt/libraries/library.egg"
},
{
"maven": {
"coordinates": "org.jsoup:jsoup:1.7.2",
"exclusions": [ "slf4j:slf4j" ]
}
},
{
"pypi": {
"package": "simplejson",
"repo": "http://my-pypi-mirror.com"
}
},
{
"cran": {
"package": "ada",
"repo": "https://cran.us.r-project.org"
}
}
]
}
有关详细信息,请参阅针对库类型的 Databricks 文档。
如何上传 Databricks 中的库
可以使用工作区 UI:
若要获取使用 UI 添加的库的 dbfs 路径,可以使用 Databricks CLI。
使用 UI 时,Jar 库通常存储在 dbfs:/FileStore/jars 下。 可以通过 CLI 列出所有库:databricks fs ls dbfs:/FileStore/job-jars
或者,可以使用 Databricks CLI:
使用 Databricks CLI(安装步骤)
例如,将 JAR 复制到 dbfs:
dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar