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

Databricks中如何通过%run命令向含Widget的笔记本传递变量?

在Databricks中通过%run传递变量到带Widget的笔记本

有两种可行的方法实现通过%run将变量v传递给目标笔记本的name Widget:

方法1:提前设置Widget值

由于%run会在当前会话中执行目标笔记本的代码,你可以先在当前笔记本中为目标笔记本的name Widget赋值,再执行%run:

dbutils.widgets.text("name", v)
%run /path/to/notebook

这样目标笔记本里的name Widget会直接读取到变量v的实际值,且执行后目标笔记本定义的所有变量都能在当前会话中直接访问,和常规%run的行为一致。

方法2:直接展开变量值到魔术命令中

正确的参数传递格式需要将变量v的实际值直接嵌入到%run命令里,而非传递变量名:

  • 如果v是字符串类型:
%run /path/to/notebook $name="$v"
  • 如果v是数值类型:
%run /path/to/notebook $name=$v

这种写法会把v的实际值传递给目标笔记本的name Widget,而非字符串"v"。

原写法失效的原因

你最初尝试的%run /path/to/notebook $name=v会将字符串"v"传递给name Widget,而非变量v的实际值,因此无法达到预期效果。

对比dbutils.notebook.run(),%run是同步执行,目标笔记本的变量会直接暴露在当前会话中,完全符合你需要直接访问变量的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:03:12