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

如何编程下载Databricks工作流对应YAML以用于DAB部署?

解决方案

Databricks的jobs/getrun接口仅返回作业运行实例的临时信息,并非作业的持久化定义。要获取可直接用于DAB(Databricks Asset Bundle)的YAML配置,你需要按以下步骤操作:

1. 获取作业的完整配置

使用Databricks Jobs API的jobs/get接口(而非getrun),传入目标作业ID即可获取作业的完整JSON配置:

import requests

databricks_host = "https://<你的工作空间URL>"
token = "<你的个人访问令牌>"
job_id = 123  # 替换为目标作业ID

response = requests.get(
    f"{databricks_host}/api/2.1/jobs/get",
    headers={"Authorization": f"Bearer {token}"},
    params={"job_id": job_id}
)
job_config = response.json()

2. 转换为DAB兼容的YAML

手动转换JSON到YAML容易出现格式或规范错误,推荐用Databricks CLI的jobs export命令,它会自动生成符合DAB标准的YAML:

databricks jobs export --job-id <目标作业ID> --output-format yaml --output-file ./job_dab_config.yaml

如果要通过代码自动化执行,可使用subprocess调用CLI命令:

import subprocess

job_id = 123
output_file = "./job_dab_config.yaml"

subprocess.run(
    [
        "databricks", "jobs", "export",
        "--job-id", str(job_id),
        "--output-format", "yaml",
        "--output-file", output_file
    ],
    check=True
)

3. 适配DAB目录结构

将导出的YAML文件放到DAB的资源目录(比如./resources/jobs/),并在根目录的databricks.yml中添加引用,示例:

# databricks.yml
bundle:
  name: my-workflow-bundle
resources:
  jobs:
    my-target-workflow:
      path: ./resources/jobs/job_dab_config.yaml

注意事项

  • 确保Databricks CLI已完成工作空间和令牌配置(执行databricks configure)
  • 导出的YAML可能包含环境特定参数(如集群ID、存储路径),需替换为DAB的变量或引用(例如{{ bundle.environment.cluster_id }})
  • 若使用Python SDK,可通过databricks-sdk调用jobs.get获取配置,再结合PyYAML转换,但CLI的export命令更贴合DAB规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 15:22:33