如何在Azure Data Factory中执行含Spark Cassandra连接器的PySpark作业
我帮你梳理下怎么把本地正常运行的PySpark脚本适配到Azure Data Factory(ADF)的HDInsightSpark活动里,结合你已有的配置,给你补全并说明关键要点:
核心背景回顾
你本地能正常执行的Spark提交命令:
spark-submit --packages com.datastax.spark:spark-cassandra-connector_2.11:2.0.6 --conf spark.cassandra.connection.host=12.34.56.68 test_cassandra.py
目标是将这个作业迁移到ADF中,通过HDInsightSpark活动执行,以下是完整的配置方案:
ADF HDInsightSpark活动完整配置示例
把你已有的配置补全后,完整的JSON配置如下:
{ "name": "spark write to cassandra", "type": "HDInsightSpark", "policy": { "timeout": "7.00:00:00", "retry": 0, "retryIntervalInSeconds": 30, "secureOutput": false, "secureInput": false }, "typeProperties": { "sparkJobLinkedService": "<你的HDInsight集群链接服务名称>", "entryFilePath": "<脚本存储路径,比如abfss://container@storageaccount.dfs.core.windows.net/scripts/test_cassandra.py>", "sparkConfig": { "spark.cassandra.connection.host": "12.34.56.68" }, "sparkSubmitParameters": "--packages com.datastax.spark:spark-cassandra-connector_2.11:2.0.6" }, "dependsOn": [] }
关键参数对应说明
- entryFilePath:对应本地命令里的
test_cassandra.py,需要先把脚本上传到ADF可访问的存储(ADLS Gen2/Blob存储),填写存储中的完整路径 - sparkConfig:对应
spark-submit中的--conf参数,所有Spark配置项都以键值对的形式放在这里 - sparkSubmitParameters:对应
spark-submit中的--packages这类附加参数,直接把需要的参数字符串填入即可 - sparkJobLinkedService:必须关联你已经创建好的HDInsight集群链接服务,确保ADF能访问到目标HDInsight资源
额外注意事项
- 确保HDInsight集群的Spark版本和Cassandra Connector版本兼容(你用的是Scala 2.11对应的Connector,需要匹配HDInsight的Spark 2.x版本)
- 如果脚本依赖其他本地文件/依赖包,要同步上传到存储,并在
sparkSubmitParameters中添加--files或--jars参数指定路径 - 检查HDInsight集群和Cassandra节点的网络连通性,确保集群能访问到
12.34.56.68这个Cassandra主机
内容的提问来源于stack exchange,提问作者Steven
相关产品推荐
相关产品推荐

