首页 > 解决方案 > 如何在 Databricks 笔记本中获取运行参数和 runId?

问题描述

将 Databricks 笔记本作为作业运行时,您可以指定可在笔记本代码中使用的作业或运行参数。但是,从文档中并不清楚您实际上是如何获取它们的。我希望能够获取所有参数以及作业 ID 和运行 ID。

标签: pythondatabricks

解决方案


作业/运行参数

当笔记本作为作业运行时,任何作业参数dbutils都可以使用Databricks 自动提供和导入的包作为字典获取。这是代码:

run_parameters = dbutils.notebook.entry_point.getCurrentBindings()

如果作业参数是{"foo": "bar"},那么上面代码的结果会为您提供 dict {'foo': 'bar'}。请注意,Databricks 仅允许strto的作业参数映射str,因此键和值将始终是字符串。

请注意,如果笔记本以交互方式运行(而不是作为作业),则 dict 将为空。该getCurrentBinding()方法似乎也适用于获取笔记本的任何活动小部件值(以交互方式运行时)。

获取jobId和runId

要获取jobIdrunId您可以从中获取dbutils包含该信息的上下文 json。(改编自databricks论坛):

import json
context_str = dbutils.notebook.entry_point.getDbutils().notebook().getContext().toJson()
context = json.loads(context_str)
run_id_obj = context.get('currentRunId', {})
run_id = run_id_obj.get('id', None) if run_id_obj else None
job_id = context.get('tags', {}).get('jobId', None)

因此,在上下文对象中,键的路径为runIdiscurrentRunId > id和键的路径为jobIdis tags > jobId


推荐阅读