如何将本地模块导入azure databricks笔记本?

lsm*_*mor 7 python azure databricks azure-databricks

我正在尝试使用 databrick 笔记本中的模块,但我完全被阻止了。我想执行以下命令或任何类似的命令,以允许我创建实例MyClass

from mypackage.mymodule import MyClass
Run Code Online (Sandbox Code Playgroud)

根据databrick的文档,我在本地开发了一个带有单个模块的python包,如下所示:

mypackage
|- __init__.py
|- setup.py
|- mymodule.py
Run Code Online (Sandbox Code Playgroud)

然后运行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
Run Code Online (Sandbox Code Playgroud)

从这里,我按照说明将.whl文件上传到工作区。但现在我无法导入MyClass任何笔记本。

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

  • 上传.whl带名称和不带名称的文件。
  • .whl其安装到集群中而不是上传。
  • 使用import mypackage
  • 使用dbutils.library.install('dbfs:/path/to/mypackage.whl/')(返回True)然后使用import ...
  • 不要上传.whl,而是在笔记本所在的目录中创建包文件夹。
  • 上传到我的文件夹和Shared文件夹
  • 上述所有组合。f.ex:使用不同的名称和用途上传import differentname

这让我发疯。这是一项非常简单的任务,我可以使用普通笔记本轻松完成。

lsm*_*mor 2

我已经通过使用 pythonegg而不是wheel. python setup.py bdist_egg将创建一个 Egg,您可以安装以下 databricks 文档。我不知道为什么wheel不起作用...