在Azure Databricks中导入其他ipynb笔记本出现KeyError如何解决
Azure Databricks 跨ipynb笔记本导入报错解决方案
报错原因
ipynb.fs是标准本地Jupyter环境的第三方导入工具,依赖标准ipynb文件的元数据结构。Azure Databricks的笔记本元数据格式和标准Jupyter存在差异,该工具无法读取对应字段,才会触发KeyError: '<strong>package</strong>'报错,不需要额外配置修复该工具,直接用Databricks原生方案即可。
正确操作步骤
方案1:使用Databricks原生
%run魔术命令(最常用)
无需安装任何依赖,直接在当前笔记本中执行对应命令即可加载目标笔记本的所有类、函数、变量到当前执行上下文:- 若test_1和当前笔记本处于同一工作区目录,执行:
%run ./test_1 - 若test_1存放在其他工作区路径,填写完整绝对路径即可:
%run "/Shared/工具脚本/test_1"
执行完成后直接调用
Test1.t1()即可使用导入的类方法。注意:如果不需要test_1末尾的
Test1.t1()在导入时执行,可以将该代码包裹在如下判断中,仅直接运行test_1时才会执行:if __name__ == "__main__": Test1.t1()- 若test_1和当前笔记本处于同一工作区目录,执行:
方案2:转换为Python模块导入
如果需要实现按需导入、别名导入等标准Python模块的能力,可以将test_1的代码保存为.py格式文件,上传到DBFS对应目录后通过标准import语法导入:import sys # 替换为你存放py文件的DBFS路径 sys.path.append("/dbfs/FileStore/custom_libs") from test_1 import Test1
内容的提问来源于stack exchange,提问作者Nandhakumar Rajendran
相关产品推荐
相关产品推荐

