我想使用 Data Factory V2 执行具有依赖项(egg 或 zip 文件)的 PySpark 作业。
当以 spark-submit 方法的形式直接在头节点集群 (HD Insight) 上运行命令时,它如下所示(并且有效):
火花提交--py-files 0.3-py3.6.egg main.py 1
在数据工厂(V2)中,我尝试定义以下内容:
{
"name": "dimension",
"properties": {
"activities": [{
"name": "Spark1",
"type": "HDInsightSpark",
"policy": {
"timeout": "7.00:00:00",
"retry": 0,
"retryIntervalInSeconds": 30,
"secureOutput": false
},
"typeProperties": {
"rootPath": "adfspark",
"entryFilePath": "main.py",
"getDebugInfo": "Always",
"sparkConfig": {
"spark.submit.pyFiles": "0.3-py3.6.egg"
},
"sparkJobLinkedService": {
"referenceName": "AzureStorageLinkedService",
"type": "LinkedServiceReference"
}
},
"linkedServiceName": {
"referenceName": "hdinsightlinkedService",
"type": "LinkedServiceReference"
}
}
]
}
}
- 尝试指定依赖项的确切路径(“wasb://.../0.3-py3.6.egg”或 adfspark/pyFiles/0.3-py3.6.egg),如此线程中建议的: 如何设置自定义具有数据工厂的 HDInsights 群集中的 Spark 参数
所有这一切都是在“adfspark”是容器并且依赖项位于“pyFiles”文件夹中的情况下,就像 Azure 文档中建议的那样: https ://docs.microsoft.com/en-us/azure/data-factory /tutorial-transform-data-spark-powershell
尽管分布式执行是这里的真正目标,但仅在头节点上运行作业就足够了