다음을 통해 공유

在 Lakeflow 作业中使用 Python wheel 文件

Python wheel 文件是打包和分发运行 Python 应用程序所需文件的标准方式。 使用 Python 滚轮任务,可以确保在作业中快速可靠地安装 Python 代码。 本文提供了一个示例,用于演示如何创建 Python wheel 文件以及如何创建运行 Python wheel 文件中打包的应用程序的作业。 在此示例中,你将:

  • 创建用于定义示例应用程序的 Python 文件。
  • 将示例文件捆绑到 Python wheel 文件中。
  • 创建一个作业来运行 Python wheel 文件。
  • 运行作业并查看结果。

开始之前

若要完成此示例,需要准备好以下各项:

  • Python3

  • Python wheelsetuptool 包。 可以使用 pip 安装这些包。 例如,可以运行以下命令来安装这些包:

    pip install wheel setuptools
    

步骤 1:为示例创建本地目录

创建一个本地目录用于保存示例代码和生成的项目,例如 databricks_wheel_test

步骤 2:创建示例 Python 脚本

以下 Python 示例是一个简单的脚本,它将读取输入参数并输出这些参数。 复制此脚本并将其保存到在上一步骤中创建的目录中名为 my_test_code/__main__.py 的路径。

"""
The entry point of the Python Wheel
"""

import sys

def main():
  # This method will print the provided arguments
  print('Hello from my func')
  print('Got arguments:')
  print(sys.argv)

if __name__ == '__main__':
  main()

步骤 3:为包创建元数据文件

以下文件包含描述包的元数据。 将此文件保存到在步骤 1 中创建的目录中名为 my_test_code/__init__.py 的路径。

__version__ = "0.0.1"
__author__ = "Databricks"

步骤 4:创建 Python wheel 文件

将 Python 项目转换为 Python wheel 文件需要指定包元数据,例如包名称和入口点。 以下脚本定义此元数据。

注意

此脚本中定义的 entry_points 用于在 Azure Databricks 工作流中运行包。 在 entry_points 的每个值中,= 前面的值(在本示例中为 run)是入口点的名称,它用于配置 Python wheel 任务。

  1. 将此脚本保存到在步骤 1 创建的目录的根目录中名为 setup.py 的文件中:

    from setuptools import setup, find_packages
    
    import my_test_code
    
    setup(
      name='my_test_package',
      version=my_test_code.__version__,
      author=my_test_code.__author__,
      url='https://databricks.com',
      author_email='john.doe@databricks.com',
      description='my test wheel',
      packages=find_packages(include=['my_test_code']),
      entry_points={
        'group_1': 'run=my_test_code.__main__:main'
      },
      install_requires=[
        'setuptools'
      ]
    )
    
  2. 切换到在步骤 1 中创建的目录并运行以下命令,以将代码打包到 Python wheel 分发中:

    python3 setup.py bdist_wheel
    

此命令会创建 Python wheel 文件并将其保存到你的目录中的 dist/my_test_package-0.0.1-py3.none-any.whl 文件中。

步骤 5。 创建任务以运行 Python wheel 文件

  1. 在工作区中,单击工作流图标,然后在边栏中选择作业和管道

  2. 单击创建,然后选择作业

    任务 ”选项卡显示空任务窗格。

    注意

    如果 Lakeflow 作业 UION,请单击 Python 滚轮 磁贴以配置第一个任务。 如果 Python 滚轮 磁贴不可用,请单击“ 添加其他任务类型 ”并搜索 Python 滚轮

  3. (可选)将默认为 New Job <date-time>作业名称的作业名称替换为作业名称。

  4. 在“任务名称”中,输入任务的名称。

  5. 如有必要,请从“类型”下拉菜单中选择 Python 滚轮

  6. 在“包名称”中输入 。 “包名称”值是要导入的 Python 包的名称。 在此示例中,包名称是分配给 name 中的 setup.py 参数的值。

  7. 在“入口点”中输入 run。 入口点是在 entry_points 脚本的 setup.py 集合中指定的值之一。 在此示例中,run 是定义的唯一一个入口点。

  8. 在“计算”中,选择一个现有作业群集或添加新作业群集

  9. 指定 Python 滚轮文件:

    • 在“ 环境和库 ”下拉列表中,单击 “铅笔”图标。“默认”旁编辑它。 或者,单击“ 添加新环境 ”以配置新环境。
    • “配置环境 ”对话框中,单击“ 添加依赖项”。
    • 单击 文件夹图标 ,打开文件浏览器。 将步骤 4 中创建的 wheel 文件拖放到 “选择依赖项 ”对话框中。
    • 单击“确认”。
  10. 在“参数”中,选择“位置参数”或“关键字参数”以输入每个参数的键和值。 位置参数和关键字参数都将作为命令行参数传递给 Python wheel 任务。

    • 若要输入位置参数,请以 JSON 格式的字符串数组形式输入参数,例如:["first argument","first value","second argument","second value"]
    • 若要输入关键字参数,请单击“+ 添加”并输入键和值。 再次单击“+ 添加”以输入更多参数。
  11. 单击“创建任务”。

步骤 6:运行作业并查看作业运行详细信息

单击 立即运行按钮 以运行工作流。 若要查看运行的详细信息,请单击“运行”选项卡,然后单击作业运行视图中运行的“开始时间”列中的链接。

运行完成后,输出会显示在“输出”面板中,其中包括传递给任务的参数。

后续步骤

若要详细了解如何创建和运行作业,请参阅 Lakeflow 作业