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。以下是步骤摘要:
- 构建包
python setup.py bdist_egg
- 将 egg/whl 文件和
main.py
脚本放入 Databricks FileStore (dbfs)
- 在 Azure DataFactory 的 Databricks Activity 中转到“设置”选项卡
- 在 Python 文件中,将 dbfs 路径设置为 python 入口点文件(
main.py
脚本)。
- 在追加库部分,select 键入 egg/wheel 将 dbfs 路径设置为 egg/whl 文件
- Select pypi 并设置包的所有依赖项。建议指定开发时使用的版本
确保 GlobalVariables 模块代码在 egg 中。当您使用轮子时,请尝试在第 5 步中使用它们。(我自己从未测试过)
我有一个 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。以下是步骤摘要:
- 构建包
python setup.py bdist_egg
- 将 egg/whl 文件和
main.py
脚本放入 Databricks FileStore (dbfs) - 在 Azure DataFactory 的 Databricks Activity 中转到“设置”选项卡
- 在 Python 文件中,将 dbfs 路径设置为 python 入口点文件(
main.py
脚本)。 - 在追加库部分,select 键入 egg/wheel 将 dbfs 路径设置为 egg/whl 文件
- Select pypi 并设置包的所有依赖项。建议指定开发时使用的版本
确保 GlobalVariables 模块代码在 egg 中。当您使用轮子时,请尝试在第 5 步中使用它们。(我自己从未测试过)