Azure 数据工厂 运行 Databricks Python Wheel

Azure Data Factory run Databricks Python Wheel

我有一个 python 包(在 PyCharm 中创建),我想 运行 在 Azure Databricks 上。在 Windows 和 Linux 环境中,我笔记本电脑命令行中的 python 代码 运行s 和 Databricks,所以我觉得没有代码问题。

我还成功地从包中创建了一个 python 轮子,并且能够从本地命令行 运行 轮子。

最后,我将轮子作为库上传到我的 Spark 集群,并在数据工厂中创建了 Databricks Python 对象,指向 dbfs 中的轮子。

当我尝试 运行 数据工厂管道时,它失败了,错误是它找不到作为 main.py 脚本的第一个导入语句的模块。该模块 (GlobalVariables) 是我的包中的其他脚本之一。它也与 main.py 在同一文件夹中;尽管我在子文件夹中也有其他脚本。我已经尝试将软件包安装到簇头中,但仍然出现相同的错误:

ModuleNotFoundError: No module named 'GlobalVariables'Tue Apr 13 21:02:40 2021 py4j imported

有没有人成功地 运行 作为 Databricks Python 对象的轮子分布,你是否必须做任何诡计让包找到包含的其余部分 files/modules?

非常感谢您的帮助!

配置屏幕截图:

我们运行 pipelines 使用egg packages 但它应该类似于wheel。以下是步骤摘要:

  1. 构建包 python setup.py bdist_egg
  2. 将 egg/whl 文件和 main.py 脚本放入 Databricks FileStore (dbfs)
  3. 在 Azure DataFactory 的 Databricks Activity 中转到“设置”选项卡
  4. 在 Python 文件中,将 dbfs 路径设置为 python 入口点文件(main.py 脚本)。
  5. 在追加库部分,select 键入 egg/wheel 将 dbfs 路径设置为 egg/whl 文件
  6. Select pypi 并设置包的所有依赖项。建议指定开发时使用的版本

确保 GlobalVariables 模块代码在 egg 中。当您使用轮子时,请尝试在第 5 步中使用它们。(我自己从未测试过)