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

如何实现Databricks任务参数与Notebook变量互相赋值?

Databricks任务参数与Notebook Widget变量共享过滤值实现方案

一、任务参数自动传递给Notebook变量

你当前的代码已经具备接收任务参数的能力,只要保证Job Task配置的参数名称和Notebook里widget的name(即field)完全一致(大小写敏感),运行Job时,任务参数的值会自动覆盖widget的defaultValue,并赋值给变量f1。

举个例子:如果任务参数里给field设置值为'region',那么代码执行后f1的值就是'region',不需要额外修改现有代码。

二、Notebook变量传递给后续任务参数

如果需要把当前Notebook里的f1值传给同一个Job中的其他任务参数,可以用Databricks内置的任务值传递功能:

  1. 在当前Notebook中添加代码,将变量值存入任务共享空间:
# 存储变量到任务共享空间,key自定义,比如'shared_filter'
dbutils.jobs.taskValues.set(key='shared_filter', value=f1)
  1. 在后续任务中,通过以下方式获取该值:
    • 如果后续任务也是Notebook任务,可以在其代码中添加:
      # taskKey为当前任务的名称,key对应存储时的key
      shared_value = dbutils.jobs.taskValues.get(taskKey='当前任务名称', key='shared_filter')
      # 可将值赋值给当前Notebook的widget或变量
      dbutils.widgets.text(name='field', defaultValue=shared_value, label='field')
      f1 = shared_value
      
    • 如果后续任务是其他类型(比如Spark任务),可以在任务参数配置中直接引用{{tasks.当前任务名称.values.shared_filter}}来获取值。

注意事项

  • 手动运行Notebook时,widget会显示输入框,用户输入的值会赋值给f1;通过Job运行时,任务参数会自动填充widget值,无需手动输入。
  • 任务参数名称和widget的name必须完全匹配,否则无法自动传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:36:34