Compartir a través de


Uso de un archivo de rueda de Python en trabajos de Lakeflow

Un archivo wheel de Python es una manera estándar de empaquetar y distribuir los archivos necesarios para ejecutar una aplicación de Python. Con la tarea de Python Wheel, puede garantizar una instalación rápida y confiable del código de Python en sus tareas. En este artículo se proporciona un ejemplo de cómo crear un archivo wheel de Python y un trabajo que ejecute la aplicación empaquetada en el archivo wheel de Python. En este ejemplo, hará lo siguiente:

  • Crear los archivos de Python que definen una aplicación de ejemplo
  • Agrupar los archivos de ejemplo en un archivo wheel de Python.
  • Cree un trabajo para ejecutar el archivo de rueda de Python.
  • Ejecutar el trabajo y ver los resultados

Antes de empezar

Para completar este ejemplo, necesita lo siguiente:

  • Python3

  • Paquetes wheel y setuptool de Python. Puede usar pip para instalar estos paquetes. Por ejemplo, puede ejecutar el comando siguiente para instalar estos paquetes:

    pip install wheel setuptools
    

Paso 1: Crear un directorio local para el ejemplo

Cree un directorio local para incluir en este el código de ejemplo y los artefactos generados, por ejemplo, databricks_wheel_test.

Paso 2: Crear el script de Python de ejemplo

El ejemplo de Python siguiente es un script sencillo que lee los argumentos de entrada y los imprime. Copie este script y guárdelo en una ruta de acceso denominada my_test_code/__main__.py en el directorio que creó en el paso anterior.

"""
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()

Paso 3: Crear un archivo de metadatos para el paquete

El archivo siguiente contiene metadatos que describen el paquete. Guárdelo en una ruta de acceso denominada my_test_code/__init__.py en el directorio que creó en el paso 1.

__version__ = "0.0.1"
__author__ = "Databricks"

paso 4: Crear el archivo wheel de Python

La conversión de artefactos de Python en un archivo de rueda de Python requiere especificar metadatos de paquete, como el nombre del paquete y los puntos de entrada. El script siguiente define estos metadatos.

Nota:

El objeto entry_points definido en este script se usa para ejecutar el paquete en el flujo de trabajo de Azure Databricks. En cada valor de entry_points, el valor anterior a = (en este ejemplo, run) es el nombre del punto de entrada y se usa para configurar la tarea de rueda de Python.

  1. Guarde este script en un archivo denominado setup.py en la raíz del directorio que creó en el paso 1:

    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. Cambie al directorio que creó en el paso 1 y ejecute el siguiente comando para empaquetar el código en la distribución de ruedas de Python:

    python3 setup.py bdist_wheel
    

Este comando crea el archivo wheel de Python y lo guarda en el archivo dist/my_test_package-0.0.1-py3.none-any.whl del directorio.

Paso 5. Crear un trabajo para ejecutar el archivo wheel de Python

  1. En el área de trabajo, haga clic en el icono Flujos de trabajo.Trabajos y canalizaciones en la barra lateral.

  2. Haga clic en Crear y, a continuación, en Trabajo.

  3. Haga clic en el icono de la rueda de Python para configurar la primera tarea. Si el icono de la rueda de Python no está disponible, haga clic en Agregar otro tipo de tarea y busque rueda de Python.

  4. Opcionalmente, reemplace el nombre del trabajo, que tiene New Job <date-time>como valor predeterminado , por el nombre del trabajo.

  5. En Nombre de tarea, escriba un nombre para la tarea.

  6. Si es necesario, seleccione Rueda de Python en el menú desplegable Tipo .

  7. En Nombre del paquete, escriba my_test_package. El valor nombre del paquete es el nombre del paquete de Python que se va a importar. En este ejemplo, el nombre del paquete es el valor asignado al parámetro name en setup.py.

  8. En Punto de entrada, escriba run. El punto de entrada es uno de los valores especificados en la colección entry_points del script setup.py. En este ejemplo, run es el único punto de entrada definido.

  9. En Proceso, seleccione un clúster de trabajos existente o Agregar nuevo clúster de trabajo.

  10. Especifique el archivo wheel de Python:

    • En la lista desplegable Entorno y bibliotecas , haga clic en el icono Lápiz. Junto a Predeterminado, para editarlo. Como alternativa, haga clic en Agregar nuevo entorno para configurar un nuevo entorno.
    • En el cuadro de diálogo Configurar entorno , haga clic en Agregar dependencia.
    • Haga clic en Icono de carpeta el icono de carpeta para abrir el explorador de archivos. Arrastre y coloque el archivo de rueda que creó en el paso 4 en el cuadro de diálogo Seleccionar una dependencia .
    • Haga clic en Confirmar.
  11. En Parámetros, seleccione Argumentos posicionales o Argumentos de palabra clave para especificar la clave y el valor de cada parámetro. Los argumentos posicionales y de palabra clave se pasan a la tarea de Python Wheel como argumentos de línea de comandos.

    • Para especificar los argumentos posicionales, escriba los parámetros como matriz de cadenas en formato JSON, por ejemplo: ["first argument","first value","second argument","second value"].
    • Para escribir argumentos de palabra clave, haga clic en + Agregar y escriba una clave y un valor. Vuelva a hacer clic en + Agregar para especificar más argumentos.
  12. Haga clic en Create task (Crear tarea).

Paso 6: Ejecutar el trabajo y ver los detalles de ejecución del trabajo

Haga clic en botón Ejecutar ahora para ejecutar el flujo de trabajo. Para ver los detalles de la ejecución, haga clic en la pestaña Ejecuciones y, a continuación, haga clic en el vínculo de la columna Hora de inicio de la ejecución en la vista ejecuciones del trabajo .

Una vez completada la ejecución, se muestra la salida en el panel Salida, incluidos los argumentos pasados a la tarea.

Pasos siguientes

Para más información sobre cómo crear y ejecutar trabajos, consulte Trabajos de Lakeflow.