从 azure databricks 中的另一个 ipynb 笔记本导入 ipynb 文件
Importing ipynb file from another ipynb notebook in azure databricks
我正在尝试使用
从 Azure Databricks 中的另一个笔记本导入 ipynb 笔记本
from ipynb.fs.full.test_1 import *
导入时出现以下关键错误
KeyError: 'package'
这是我的测试代码
class Test1:
def t1():
a=10
b= 10
c= a+b
return c
Test1.t1()
我是不是漏掉了什么?
Databricks 中的笔记本不是真正的文件 - 它们类似于数据库中的条目,未存储在文件系统中。因此,您不能使用 Python 的 import
从一个笔记本编码到另一个笔记本。
现在可以使用 %run
将一个笔记本的内容包含到另一个笔记本中(参见 docs),例如,实现笔记本测试。只需将您的代码分成两部分:
- 有你想测试的功能的笔记本(例如命名为
functions
):
def func1(....):
....
- 然后在带有测试代码的笔记本中将以下内容作为一个单独的单元格
%run ./functions
这会将第一个笔记本的全部内容包含到第二个笔记本的上下文中。
我有一个 demo project 展示了如何使用这种方法在 Databricks 上测试笔记本。
P.S。通过将笔记本下载到本地文件系统,将它们添加到 sys.path
等有一个解决方法,但这很麻烦 - 您可以在 following answer.
中找到示例
我正在尝试使用
从 Azure Databricks 中的另一个笔记本导入 ipynb 笔记本from ipynb.fs.full.test_1 import *
导入时出现以下关键错误
KeyError: 'package'
这是我的测试代码
class Test1:
def t1():
a=10
b= 10
c= a+b
return c
Test1.t1()
我是不是漏掉了什么?
Databricks 中的笔记本不是真正的文件 - 它们类似于数据库中的条目,未存储在文件系统中。因此,您不能使用 Python 的 import
从一个笔记本编码到另一个笔记本。
现在可以使用 %run
将一个笔记本的内容包含到另一个笔记本中(参见 docs),例如,实现笔记本测试。只需将您的代码分成两部分:
- 有你想测试的功能的笔记本(例如命名为
functions
):
def func1(....):
....
- 然后在带有测试代码的笔记本中将以下内容作为一个单独的单元格
%run ./functions
这会将第一个笔记本的全部内容包含到第二个笔记本的上下文中。
我有一个 demo project 展示了如何使用这种方法在 Databricks 上测试笔记本。
P.S。通过将笔记本下载到本地文件系统,将它们添加到 sys.path
等有一个解决方法,但这很麻烦 - 您可以在 following answer.