Synapse Notebook 参考 - 如何使用 %run

Posted

技术标签:

【中文标题】Synapse Notebook 参考 - 如何使用 %run【英文标题】:Synapse Notebook reference - how to use %run 【发布时间】:2021-10-16 00:17:07 【问题描述】:

我正在尝试使用此处描述的 Azure Synapse 笔记本参考:

https://docs.microsoft.com/en-us/azure/synapse-analytics/spark/apache-spark-development-using-notebooks?tabs=preview#notebook-reference

这是我的设置,notebook_1 和 notebook_2 都在 Synapse notebook 的根文件夹下。

我在工作区中发布了一个 notebook_1,然后尝试在 notebook_2 中使用

%run 'notebook_1'

出现错误提示:

MagicUsageError:无法读取笔记本“notebook_1”。可能的原因是笔记本不存在。

有人可以就正确的做法提供建议吗?非常感谢。

【问题讨论】:

notebook_1 发布了吗?如果没有,它可能找不到参考。 notebook_1 和 notebook_2 都已发布。 原来只是 %run notebook_1 工作 只是确认一下,引号不正确? 是的,删除报价后可以使用 【参考方案1】:

尝试删除笔记本中的单引号以解决问题:

【讨论】:

【参考方案2】:

还要确保您尝试调用的笔记本已发布。 更多关于调用笔记本的信息可以在这里找到:Run another synapse notebook(包括在下面)

您可以通过调用 %run magic 或 mssparkutils 笔记本实用程序在 Synapse 笔记本活动中引用其他笔记本。两者都支持嵌套函数调用。根据您的场景,您应该考虑这两种方法的主要区别是:

%run 魔术将所有单元格从引用的笔记本复制到 %run 单元格并共享变量上下文。当 notebook1 通过 %run notebook2 引用 notebook2 并且 notebook2 调用 mssparkutils.notebook.exit 函数时,notebook1 中的单元格执行将停止。当您想要“包含”笔记本文件时,我们建议您使用 %run 魔法。

mssparkutils 笔记本实用程序将引用的笔记本作为方法或函数调用。变量上下文不共享。当 notebook1 通过 mssparkutils.notebook.run("notebook2") 引用 notebook2 并且 notebook2 调用 mssparkutils.notebook.exit 函数时,notebook1 中的单元格执行将继续。我们建议您在要“导入”笔记本时使用 mssparkutils 笔记本实用程序。

【讨论】:

以上是关于Synapse Notebook 参考 - 如何使用 %run的主要内容,如果未能解决你的问题,请参考以下文章

通过 Synapse Pipelines 执行 Azure Synapse Notebook 时访问 Key Vault 时出错

Azure Synapse Pipeline Notebook 返回错误

Azure Synapse Notebook 对认知服务转换器的请求

无法从 synapse spark scala notebook 读取 csv 文件

错误 Azure Synapse Notebook:ImportError: tokenizers>=0.10.1,<0.11 是此模块正常运行所必需的,但发现 tokenizers==0

如何使 Jupyter Notebook 中的内联图更大? [复制]