通过运行 Synapse Spark 作业定义来转换数据
适用于: Azure 数据工厂 Azure Synapse Analytics
管道中的 Azure Synapse Spark 作业定义活动在 Azure Synapse Analytics 工作区中运行 Synapse Spark 作业定义。 本文基于数据转换活动一文,它概述了数据转换和受支持的转换活动。
设置 Apache Spark 作业定义画布
若要在管道中使用 Synapse 的 Spark 作业定义活动,请完成以下步骤:
常规设置
在管道的“活动”窗格中搜索“Spark 作业定义”,然后将 Synapse 下的 Spark 作业定义活动拖动到管道画布上。
在画布上选择新的 Spark 作业定义活动(如果还没有选择)。
在“常规”选项卡中,输入 sample 作为名称。
(选项)也可以输入说明。
超时:活动可以运行的最长时间。 默认值为 7 天,这也是允许的最长时间。 格式为 D.HH:MM:SS。
重试:最大重试尝试次数。
重试间隔:两次重试尝试之间的时间,以秒为单位。
安全输出:选中后,将不会在日志记录中捕获活动的输出。
安全输入:选中后,将不会在日志记录中捕获活动的输入。
Azure Synapse Analytics(项目)设置
在画布上选择新的 Spark 作业定义活动(如果还没有选择)。
选择“Azure Synapse Analytics (项目)”选项卡,并选择将执行 Spark 作业定义活动的 Azure Synapse Analytics 链接服务,或创建一个 新的链接服务。
“设置”选项卡
在画布上选择新的 Spark 作业定义活动(如果还没有选择)。
选择“设置”选项卡。
展开 Spark 作业定义列表,可以在链接的 Azure Synapse Analytics 工作区中选择现有的 Apache Spark 作业定义。
(可选)可以填写 Apache Spark 作业定义的信息。 如果以下设置为空,将使用 Spark 作业定义本身的设置来运行;如果以下设置不为空,这些设置将替换 Spark 作业定义本身的设置。
属性 说明 主定义文件 用于作业的主文件。 从存储中选择一个 PY/JAR/ZIP 文件。 可以选择“上传文件”以将文件上传到存储帐户。
示例:abfss://…/path/to/wordcount.jar
来自子文件夹的引用 从主定义文件的根文件夹中扫描子文件夹时,这些文件将被添加为引用文件。 将扫描名为“jars”、“pyFiles”、“files”或“archives”的文件夹,文件夹名称区分大小写。 主类名 主定义文件中的完全限定标识符或主类。
示例:WordCount
命令行参数 可以通过单击“新建”按钮来添加命令行参数。 应当注意的是,添加命令行参数将替代由 Spark 作业定义定义的命令行参数。
示例:abfss://…/path/to/shakespeare.txt
abfss://…/path/to/result
Apache Spark 池 可以从列表中选择 Apache Spark 池。 Python 代码参考 在主定义文件中用于引用的其他 Python 代码文件。
它支持将文件(.py、.py3、.zip)传递到“pyFiles”属性。 它将替代 Spark 作业定义中定义的“pyFiles”属性。引用文件 用于主定义文件中的引用的其他文件。 Apache Spark 池 可以从列表中选择 Apache Spark 池。 动态分配执行程序 此设置映射到用于 Spark 应用程序执行工具分配的 Spark 配置中的动态分配属性。 最小执行程序数 要在作业的指定 Spark 池中分配的最小执行程序数。 最大执行程序数 要在作业的指定 Spark 池中分配的最大执行程序数。 驱动程序大小 作业的指定 Apache Spark 池中提供的驱动程序要使用的核心数和内存量。 Spark 配置 指定在以下主题中列出的 Spark 配置属性的值:Spark 配置 - 应用程序属性。 用户可以使用默认配置和自定义配置。 可以通过单击“添加动态内容”按钮或按快捷键 Alt+Shift+D 来添加动态内容。 在“添加动态内容”页面,可以使用表达式、函数和系统变量的任意组合来添加动态内容。
“用户属性”选项卡
可以在此面板中为 Apache Spark 作业定义活动添加属性。
Azure Synapse Spark 作业定义活动定义
下面是一个 Azure Synapse Analytics 笔记本活动的示例 JSON 定义:
{
"activities": [
{
"name": "Spark job definition1",
"type": "SparkJob",
"dependsOn": [],
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false,
"secureInput": false
},
"typeProperties": {
"sparkJob": {
"referenceName": {
"value": "Spark job definition 1",
"type": "Expression"
},
"type": "SparkJobDefinitionReference"
}
},
"linkedServiceName": {
"referenceName": "AzureSynapseArtifacts1",
"type": "LinkedServiceReference"
}
}
],
}
Azure Synapse Spark 作业定义属性
下表描述了 JSON 定义中使用的 JSON 属性:
属性 | 描述 | 必需 |
---|---|---|
name | 管道中活动的名称。 | 是 |
description | 描述活动用途的文本。 | 否 |
type | 对于 Azure Synapse Spark 作业定义活动,活动类型为 SparkJob。 | 是 |
查看 Azure Synapse Spark 作业定义活动运行历史记录
转到“监视”选项卡下的“管道运行”,将看到已触发的管道。 打开包含 Azure Synapse Spark 作业定义活动的管道可以查看运行历史记录。
可以通过选择“输入”或“输出”按钮查看笔记本活动输入或输出。 如果管道因用户错误而失败,可以选择“输出”来检查“结果”字段,以查看详细的用户错误回溯 。