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

Databricks如何将dbutils.widgets获取的参数传递给其他Notebook

Databricks Notebook间字符串参数传递实现方案

你在XYZ Notebook中通过下拉控件拿到的user值本身就是字符串类型,直接通过Databricks内置的Notebook调用能力传参即可,不需要额外做类型转换,具体实现分两步:

1. XYZ Notebook侧调用传参

保留你原有的下拉控件代码,追加Notebook调用逻辑,把获取到的用户值放入入参映射中:

// 原有下拉控件逻辑
dbutils.widgets.dropdown("user", "user1", Seq("user1", "user2"), "User Name") 
val user = dbutils.widgets.get("user")

// 调用名为ABC的Notebook并传参
dbutils.notebook.run(
  "/你的工作区路径/ABC", // 替换为ABC Notebook在工作区的实际绝对路径
  300, // 调用超时时间,单位为秒,可根据任务时长调整,设为0代表无超时
  Map("abc_user_param" -> user) // 传参键值对,key为ABC侧约定的接收参数名,value为要传的用户字符串
)

2. ABC Notebook侧参数接收

在ABC Notebook的开头添加参数接收逻辑,和你定义下拉控件的语法一致,用文本控件接收传入的字符串即可:

// 定义入参控件,参数名和XYZ侧传参的key完全一致
dbutils.widgets.text("abc_user_param", "", "接收外部传入的用户名")
// 拿到传入的用户值,类型为String,可直接用于后续业务逻辑
val inputUser = dbutils.widgets.get("abc_user_param")

注意事项

  • 调用Notebook时第一个参数必须填ABC的工作区绝对路径,仅填Notebook名称会触发资源找不到的报错
  • 传参Map的key和ABC侧定义的widget名称大小写完全敏感,必须保持一致,否则ABC会读取到控件设置的默认空值
  • 如果你不需要等待ABC Notebook执行完成再继续XYZ的后续逻辑,可以替换为异步提交的Notebook运行接口,常规场景用同步的dbutils.notebook.run即可满足需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 04:39:20