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

如何基于Run ID将Databricks作业状态保存至变量?ADF触发场景遇问题

获取ADF触发的Databricks Notebook作业状态

问题分析

你之前的代码返回None,是因为解析toJson()后的JSON结构时路径错误——currentRunState并非直接处于顶层结构中。

正确实现方式

方式1:直接调用Databricks API(推荐)

无需解析JSON,直接通过API获取运行状态:

# 获取当前Notebook的运行状态对象
run_state = dbutils.notebook.entry_point.getDbutils().notebook().getContext().currentRunState().get()
# 提取状态字符串
run_status = run_state.status().toString()

# 验证结果
print(f"作业状态: {run_status}")

方式2:修正JSON解析路径

如果偏好解析JSON,需调整到正确的路径:

import json

context_str = dbutils.notebook.entry_point.getDbutils().notebook().getContext().toJson()
context = json.loads(context_str)

# 从tags节点下获取运行状态
run_status = context['tags'].get('spark.databricks.notebook.runState', None)
print(run_status)

注意事项

  • 两种方式在ADF触发的Notebook场景下,均可正确返回IN_PROGRESS、FAILED或SUCCEEDED状态
  • 方式1更稳定,避免Databricks内部JSON结构变更导致的失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:37:11