Databricks Asset Bundles:如何通过多个YML文件部署作业?
解决Databricks多作业文件只部署一个的问题
为啥会出现这种情况?因为Databricks CLI默认的include合并策略是replace——当多个YAML文件都带着resources: jobs:的顶级结构时,后面文件的作业配置会直接覆盖前面的,最后就只剩最后一个文件的作业被部署。
给你两种解决办法:
方法一:修改include的合并策略(不用改现有作业文件)
直接在databricks.yml里给include配置加上合并策略,让CLI把所有文件的jobs数组合并到一起:
include: - path: resources/**/*.yml merge_strategy: merge
这样不用动你现有的两个作业YML文件,运行databricks deploy时就会把所有作业都部署上去。
方法二:调整作业文件的结构(更直观)
把每个作业文件里的顶级resources:去掉,只保留单个或多个作业的配置项:
比如resources/job1.yml改成这样:
- job_name: "第一个作业" tasks: - task_key: "执行Notebook" notebook_task: notebook_path: "/Workspace/Notebooks/我的Notebook" # 其他作业相关配置
然后在databricks.yml里直接把这些文件作为jobs数组的元素引入:
resources: jobs: - !include resources/job1.yml - !include resources/job2.yml
这种方式逻辑更清晰,每个文件对应作业的直接配置,不会有覆盖问题。
内容的提问来源于stack exchange,提问作者user3579222
相关产品推荐
相关产品推荐

