You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure Data Factory(ADF)在HDInsight按需集群安装Python包

在ADF按需HDInsight集群中安装Spark未预装包的方案

一、直接在PySpark脚本内执行pip install(临时方案)

可以在PySpark脚本开头添加代码执行pip安装,这是每个任务运行时临时安装的方式,集群销毁后依赖会消失,适合临时测试或轻量需求:

import subprocess
# 示例:安装连接Azure MySQL所需的包
subprocess.run(["pip", "install", "mysql-connector-python"], check=True)

这种方式的局限性:

  • 每个Executor节点都要重复安装,会增加任务执行的额外开销
  • 集群规模较大时,安装过程会拉长整体任务时长
  • 不同节点可能出现依赖包版本不一致的情况

二、使用HDInsight自定义脚本动作(推荐方案)

这是更可靠的方式,能在集群创建阶段完成依赖安装,确保所有节点环境一致:

  1. 在ADF的HDInsight按需集群链接服务配置中,找到自定义脚本动作配置项
  2. 上传一个Shell脚本到Azure存储(如Blob Storage),脚本示例:
#!/bin/bash
# 安装Python依赖包
pip install mysql-connector-python
# 若需安装Scala/Java依赖,可将jar包上传至集群lib目录,或通过spark-submit的--packages参数指定
  1. 配置脚本动作的运行节点类型(如头节点、工作节点)
  2. ADF启动按需集群时,会自动执行该脚本完成依赖部署

三、通过Spark作业参数传递依赖(补充方案)

如果是PySpark作业,可在ADF的Spark活动配置中,在作业参数里添加:

--packages mysql-connector-python

不过这种方式更适配Maven管理的依赖,对于纯Python包,自定义脚本动作或pip安装的方式更直接。

总结

  • 临时测试/小需求:用PySpark脚本内的subprocess执行pip install
  • 生产环境/稳定需求:优先使用HDInsight自定义脚本动作,保障集群环境一致性

内容的提问来源于stack exchange,提问作者dragraichu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:42:02