Azure Synapse中参数化调用Notebook失败,无法找到指定Notebook求助
问题解决思路
核心原因
Synapse Pipeline的For Each活动调用Notebook时,默认只会从主分支加载资源,你的Notebook存在个人分支里,所以哪怕名称完全匹配,活动也找不到对应的资源。
可行解决方案
合并分支到主分支(最简单的方式)
把包含目标Notebook的分支合并到主分支,之后For Each活动通过@item().NotebookName参数化调用就能正常识别到Notebook。用
mssparkutils.notebook.run指定分支调用
如果不想合并分支,可以在For Each里先调用一个中转Notebook,在这个中转Notebook里用mssparkutils.notebook.run指定分支路径:# 接收For Each传递的Notebook名称参数 notebook_name = dbutils.widgets.get("NotebookName") # 替换成你的Notebook根路径和分支名 mssparkutils.notebook.run(f"/your-notebook-root/{notebook_name}", 3600, branch="your-branch-name")中转Notebook需要先定义好接收
NotebookName的输入参数,For Each活动里把@item().NotebookName传递给这个参数即可。排查参数传递的隐性问题
先加一个Set Variable活动,把@item().NotebookName赋值给字符串变量,运行后查看监控里的变量值,确认没有多余空格、换行或特殊字符,避免因为参数格式问题导致匹配失败。
内容的提问来源于stack exchange,提问作者user14796414
相关产品推荐
相关产品推荐

