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

如何获取Azure Data Factory中Databricks Notebook任务的run id并存入目标表

实现方案

首先可根据你需要存储的ID类型选择对应方案,也可组合使用同时存储多类ID:

方案1:从ADF传递内置系统变量到Databricks Notebook(适用需要ADF侧ID的场景)

无需修改Databricks侧运行配置,仅需配置参数传递即可:

  • 第一步:在你的Databricks Notebook中提前声明接收参数,示例代码:
# 声明入参,参数名需和ADF侧配置保持一致
dbutils.widgets.text("adf_pipeline_run_id", "")
dbutils.widgets.text("adf_activity_run_id", "")
# 读取传入的参数值
adf_pipeline_id = dbutils.widgets.get("adf_pipeline_run_id")
adf_activity_id = dbutils.widgets.get("adf_activity_run_id")
  • 第二步:进入ADF对应Databricks Notebook活动的配置页,找到「参数」配置栏,新增两个参数:
    • 参数1:名称填adf_pipeline_run_id,值填写ADF系统变量 @pipeline().RunId(对应整个管道的运行ID)
    • 参数2:名称填adf_activity_run_id,值填写ADF系统变量 @activity('你的Databricks活动名称').ActivityRunId(对应该Databricks活动在ADF侧的运行ID)
  • 第三步:在Notebook的写入逻辑中,把读取到的ID作为新字段添加到待写入数据集,正常写入目标表即可。

方案2:Notebook内部直接获取Databricks作业运行ID(适用需要Databricks侧作业ID的场景)

不需要修改ADF配置,直接在Notebook内通过运行上下文获取即可,示例代码:

from pyspark.sql import SparkSession
from pyspark.dbutils import DBUtils

spark = SparkSession.builder.getOrCreate()
dbutils = DBUtils(spark)

# 读取当前Databricks作业实例的运行ID
notebook_context = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
databricks_run_id = notebook_context.runId().get()

拿到ID后按业务需要作为新字段写入目标表即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:08