python - 如何在 Databricks 笔记本中获取运行参数和 runId?
问题描述
将 Databricks 笔记本作为作业运行时,您可以指定可在笔记本代码中使用的作业或运行参数。但是,从文档中并不清楚您实际上是如何获取它们的。我希望能够获取所有参数以及作业 ID 和运行 ID。
解决方案
作业/运行参数
当笔记本作为作业运行时,任何作业参数dbutils
都可以使用Databricks 自动提供和导入的包作为字典获取。这是代码:
run_parameters = dbutils.notebook.entry_point.getCurrentBindings()
如果作业参数是{"foo": "bar"}
,那么上面代码的结果会为您提供 dict {'foo': 'bar'}
。请注意,Databricks 仅允许str
to的作业参数映射str
,因此键和值将始终是字符串。
请注意,如果笔记本以交互方式运行(而不是作为作业),则 dict 将为空。该getCurrentBinding()
方法似乎也适用于获取笔记本的任何活动小部件值(以交互方式运行时)。
获取jobId和runId
要获取jobId
,runId
您可以从中获取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)
因此,在上下文对象中,键的路径为runId
iscurrentRunId > id
和键的路径为jobId
is tags > jobId
。
推荐阅读
- css - 使用兄弟文件中的 SASS 变量
- c++ - 带有继承的模板参数推断
- sql-server - Powershell脚本设置死锁优先级
- vue.js - Vuetify.js 整页高度滚动布局
- sql - SQL 试图节省 %
- highcharts - highcharts 如何使用 yAxis 上的类别使 x 和 y 轴从同一个零开始
- r - 如何使用 Durbin Watson 测试找到自相关值?
- python - Spark - Python - Get Year/Month on RDD
- c# - 带窗户的石头剪刀布游戏
- sql - Oracle - hh mm ss 到 hh:mm:ss 与一个异国情调