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

如何将Databricks Notebook的Widget输出传递至另一个Notebook作为输入?

在Synapse Notebook间传递Pipeline参数的实现方案

修正第一个Notebook的参数处理代码

你原代码里的"input": dbutils.widgets.get("input")是无效语法,会导致运行报错,先调整第一个Notebook的代码,确保正确接收Pipeline参数并生成可用路径:

# 定义接收Synapse Pipeline参数的Widget
dbutils.widgets.text("input", "", "")
# 获取参数并拼接存储路径
input_path = "/mnt/" + dbutils.widgets.get("input")
print(f"生成的目标路径:{input_path}")

这里将变量名改为input_path是为了避免和Python内置的input()函数冲突,你也可以保留原变量名input,但建议使用更清晰的命名。

在第二个Notebook中调用并复用变量

通过%run命令执行第一个Notebook后,第一个Notebook中定义的全局变量会自动传入当前会话,直接使用即可:

# 运行第一个Notebook(替换为你的第一个Notebook的实际路径或名称)
%run ./第一个Notebook
# 使用第一个Notebook生成的路径读取CSV文件
df = spark.read.csv(input_path)
# 可选:查看数据样例验证结果
df.show()

可选:更严谨的参数传递方式(使用notebook.exit)

如果需要更可控的参数传递(比如动态指定参数或异步执行),可以用dbutils.notebook.exit()返回结果,再在第二个Notebook中接收:

  1. 修改第一个Notebook,末尾添加返回语句:
dbutils.widgets.text("input", "", "")
input_path = "/mnt/" + dbutils.widgets.get("input")
print(f"生成的目标路径:{input_path}")
# 返回拼接后的路径
dbutils.notebook.exit(input_path)
  1. 第二个Notebook中调用并接收返回值:
# 调用第一个Notebook,指定超时时间(单位:秒)和传入参数
input_path = dbutils.notebook.run("./第一个Notebook", 60, {"input": "你的Pipeline参数值"})
# 读取CSV文件
df = spark.read.csv(input_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:27:50