如何将本地模块导入 azure databricks notebook?
How to import a local module into azure databricks notebook?
我正在尝试使用 databrick 笔记本中的模块,但我完全被阻止了。我想执行以下命令或任何类似的命令来创建 MyClass
的实例
from mypackage.mymodule import MyClass
根据 databrick 的 documentation,我在本地开发了一个 python 包含单个模块的包,如下所示:
mypackage
|- __init__.py
|- setup.py
|- mymodule.py
然后运行python setup.py bdist_wheel
得到一个.whl
文件。该目录最终成为
mypackage
|- build
|- ... whatever
|- src.egg-info
|- ... whatever
|- dist
|- src-0.1-py3-none-any.whl
|- __init__.py
|- setup.py
|- mymodule.py
我已从这里按照说明将 .whl
文件上传到 Workspace。但是现在我无法将 MyClass
导入任何笔记本。
我已经尝试了以下所有方法:
- 上传带名字和不带名字的
.whl
。
- 上传
.whl
安装到集群中而不是。
- 使用
import mypackage
- 使用
dbutils.library.install('dbfs:/path/to/mypackage.whl/')
(returns True
)然后使用import ...
- 不要上传
.whl
,而是在与笔记本相同的目录中创建包文件夹。
- 上传到我的文件夹和
Shared
文件夹
- 以上的所有组合。 f.ex: 使用不同的名称上传并使用
import differentname
这让我发疯。这是一个如此简单的任务,我可以用普通笔记本轻松完成。
我已经通过使用 python 的 egg
而不是 wheel
解决了这个问题。 python setup.py bdist_egg
将创建一个 egg,您可以按照 databricks 文档安装它。我不知道为什么 wheel
不起作用...
随着引入 对 Databricks Repos 中任意文件的支持,现在可以 import
轻松自定义 modules/packages,如果 module/package 位于链接的 git 存储库中。
首先,
- 确保 Repos for Git integration 已启用。
- 确保 support for arbitrary files 已启用。
这两个都可以从设置 -> 管理控制台 -> 工作区设置中启用。
然后,在 git 仓库中使用以下目录结构,
.
├── mypackage
│ ├── __init__.py
│ └── mymodule.py
└── test_notebook
可以从 test_notebook
中 import
包 mypackage
中的模块 mymodule
只需执行以下语句即可:
# This is test_notebook in the above filetree
from mypackage.mymodule import MyClass
我正在尝试使用 databrick 笔记本中的模块,但我完全被阻止了。我想执行以下命令或任何类似的命令来创建 MyClass
from mypackage.mymodule import MyClass
根据 databrick 的 documentation,我在本地开发了一个 python 包含单个模块的包,如下所示:
mypackage
|- __init__.py
|- setup.py
|- mymodule.py
然后运行python setup.py bdist_wheel
得到一个.whl
文件。该目录最终成为
mypackage
|- build
|- ... whatever
|- src.egg-info
|- ... whatever
|- dist
|- src-0.1-py3-none-any.whl
|- __init__.py
|- setup.py
|- mymodule.py
我已从这里按照说明将 .whl
文件上传到 Workspace。但是现在我无法将 MyClass
导入任何笔记本。
我已经尝试了以下所有方法:
- 上传带名字和不带名字的
.whl
。 - 上传
.whl
安装到集群中而不是。 - 使用
import mypackage
- 使用
dbutils.library.install('dbfs:/path/to/mypackage.whl/')
(returnsTrue
)然后使用import ...
- 不要上传
.whl
,而是在与笔记本相同的目录中创建包文件夹。 - 上传到我的文件夹和
Shared
文件夹 - 以上的所有组合。 f.ex: 使用不同的名称上传并使用
import differentname
这让我发疯。这是一个如此简单的任务,我可以用普通笔记本轻松完成。
我已经通过使用 python 的 egg
而不是 wheel
解决了这个问题。 python setup.py bdist_egg
将创建一个 egg,您可以按照 databricks 文档安装它。我不知道为什么 wheel
不起作用...
随着引入 对 Databricks Repos 中任意文件的支持,现在可以 import
轻松自定义 modules/packages,如果 module/package 位于链接的 git 存储库中。
首先,
- 确保 Repos for Git integration 已启用。
- 确保 support for arbitrary files 已启用。
这两个都可以从设置 -> 管理控制台 -> 工作区设置中启用。
然后,在 git 仓库中使用以下目录结构,
.
├── mypackage
│ ├── __init__.py
│ └── mymodule.py
└── test_notebook
可以从 test_notebook
中 import
包 mypackage
中的模块 mymodule
只需执行以下语句即可:
# This is test_notebook in the above filetree
from mypackage.mymodule import MyClass