如何将本地模块导入 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 导入任何笔记本。

我已经尝试了以下所有方法:

这让我发疯。这是一个如此简单的任务,我可以用普通笔记本轻松完成。

我已经通过使用 python 的 egg 而不是 wheel 解决了这个问题。 python setup.py bdist_egg 将创建一个 egg,您可以按照 databricks 文档安装它。我不知道为什么 wheel 不起作用...

随着引入 对 Databricks Repos 中任意文件的支持,现在可以 import 轻松自定义 modules/packages,如果 module/package 位于链接的 git 存储库中。

首先,

  1. 确保 Repos for Git integration 已启用。
  2. 确保 support for arbitrary files 已启用。

这两个都可以从设置 -> 管理控制台 -> 工作区设置中启用。

然后,在 git 仓库中使用以下目录结构,

.
├── mypackage
│   ├── __init__.py
│   └── mymodule.py
└── test_notebook

可以从 test_notebookimportmypackage 中的模块 mymodule 只需执行以下语句即可:

# This is test_notebook in the above filetree
from mypackage.mymodule import MyClass