如何通过ADF管道运行Azure Databricks中创建的Spark作业?
ADF管道运行Databricks绑定交互集群的参数化Spark作业配置方法
你现有配置已经完成了前置准备,按以下步骤配置即可正常调度:
1. 确认链接服务与集群匹配
- 打开ADF管道编辑页,选中你添加的Notebook活动,切到「Azure Databricks」配置标签页
- 确认下拉选中的链接服务,指向的就是你Spark作业绑定的那台interactive cluster,可以去Databricks集群配置页复制集群ID,和链接服务里配置的集群ID做比对,完全一致才可以
不要选「新建作业集群」选项,否则会自动拉起新集群,不会跑在你提前配置好的交互集群上
2. 绑定目标作业对应的Notebook
- 切换到Notebook活动的「设置」标签页
- 点击「Notebook path」旁的浏览按钮,直接从工作区目录树里选中你Spark作业关联的那个Notebook文件,不建议手动输入路径,避免拼写错误
如果你创建的Spark作业是Jar包、独立Python脚本类型,不要用Notebook活动,换成Databricks对应的Jar活动、Python活动即可,配置逻辑和Notebook活动基本一致
3. 透传作业参数
- 在同一「设置」标签页下找到「Base parameters」区域
- 逐行新增参数:参数名必须和你Databricks侧Spark作业定义的参数名完全一致(大小写敏感),参数值可以填固定常量,也可以绑定ADF管道变量、触发器入参、上游活动的输出字段
- 举个例子:如果你的Spark作业定义了
biz_date、region两个入参,这里就新增两个同名参数,填入对应值即可,ADF会自动把参数传给集群上的Spark作业
不需要在ADF侧传集群规格、Spark配置、依赖包这类参数,这类配置已经在你预绑定的交互集群和Databricks作业里提前配置完成,ADF侧只需要传业务相关的动态参数
4. 测试与校验
- 配置完成后点击管道顶部的「调试」按钮做测试运行
- 提交后可以直接去Databricks工作区,找到对应交互集群的「作业运行」标签页,能看到ADF提交的运行实例,点进去可以查看实时日志、确认传入参数是否符合预期
- 如果报参数缺失错误,优先排查ADF侧填写的参数名和Databricks作业定义的参数名是否存在拼写错误、大小写不匹配的问题
常见注意事项
- 交互集群的空闲自动终止时间不要设置过短,ADF提交作业时如果集群处于终止状态会自动唤醒集群,但如果集群权限配置有误,会出现唤醒失败的报错
- ADF链接服务使用的认证身份(服务主体/个人访问令牌对应的账号),必须拥有目标交互集群的「附加到集群」权限,以及目标Notebook/作业文件的「运行」权限,否则会报403权限错误
- 如果你的Spark作业依赖集群预装的第三方库、初始化脚本,确认这些配置是绑定在当前选中的交互集群上,不要错配到其他集群
内容的提问来源于stack exchange,提问作者gregeal
相关产品推荐
相关产品推荐

