如何在 Databricks 工作流 UI 中传递动态参数(例如当前日期)

问题描述 投票:0回答:1

我正在 Databricks Workflow UI 中设置作业,并且我想在每次作业运行时动态地传递参数值,例如当前日期 (run_date)。在 Azure 数据工厂中,我可以使用 @utcnow() 等表达式在运行时计算此值。但是,我想在 Databricks 中实现相同的目标,其中 run_date 参数将在运行时自动计算并传递,而无需对其进行硬编码或手动更新。

比如笔记本中,我目前就是用这个来获取参数的:

run_date = dbutils.widgets.get("run_date")
有没有办法在 Databricks 工作流 UI 中配置动态参数,或者这是否需要外部处理(例如,通过脚本或 API)?

databricks workflow azure-databricks databricks-workflows
1个回答
0
投票
正如您提到的,您想在 UI 中使用参数来表示

当前日期 (run_date) 您可以使用语法

{{runtime.parameters.parameterName}}
并在 UI 中创建一个参数并传递密钥。

我已经尝试过以下代码:

import datetime import requests Datetoday = datetime.datetime.utcnow().strftime('%Y-%m-%d') job_params = { "job_id": 308445560035795, "parameters": { "parameterName": Datetoday } } response = requests.post( 'https://<Your Databricks instance>/api/2.0/jobs/run-now', json=job_params, auth=('token', '<Databricks token>') ) print(response.json())

结果:

{'run_id': 40676880654841, 'number_in_job': 40676880654841}

enter image description here

在上面将当前日期格式化为所需的格式 定义作业参数,包括动态设置的参数 使用动态参数调用 API 来触发作业

© www.soinside.com 2019 - 2024. All rights reserved.