Share via


Usar un archivo Wheel de Python en un trabajo de Azure Databricks

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 wheel de Python, puede garantizar una instalación rápida y de confianza del código de Python en los trabajos de Azure Databricks. 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.
  • Crear un trabajo para ejecutar el archivo wheel 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 los artefactos de Python en un archivo wheel 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. Creación de un trabajo de Azure Databricks para ejecutar el archivo wheel de Python

  1. Vaya a la página de aterrizaje de Azure Databricks y realice una de las siguientes acciones:
    • En la barra lateral, haga clic en Icono de flujos de trabajoFlujos de trabajo y haga clic en elBotón Crear trabajo.
    • En la barra lateral, haga clic en Icono NuevoNuevo y seleccione Trabajo del menú.
  2. En el cuadro de diálogo de tarea que aparece en la pestaña Tareas, reemplace Agregar un nombre para el trabajo... por el nombre del trabajo, por ejemplo, Python wheel example.
  3. En el campo Nombre de tarea, escriba el nombre que quiera darle a la tarea, por ejemplo, python_wheel_task.
  4. En Tipo, seleccione Wheel de Python.
  5. En Nombre del paquete, escriba my_test_package. El nombre del paquete es el valor asignado a la variable name en el script setup.py.
  6. 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.
  7. En Clúster, seleccione un clúster compatible. Consulte Bibliotecas con ámbito de clúster.
  8. Haga clic en Agregar en Bibliotecas dependientes. En el cuadro de diálogo Agregar biblioteca dependiente, con área de trabajo seleccionada, arrastre el my_test_package-0.0.1-py3-none-any.whl archivo creado en el paso 4 al cuadro de diálogo Colocar archivo aquí área.
  9. Haga clic en Agregar.
  10. 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.
  11. Haga clic en Guardar 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 Ver ejecución en el menú emergente Ejecución desencadenada o haga clic en el vínculo de la columna Hora de inicio de la ejecución en la vista de ejecuciones de trabajos.

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

Pasos siguientes

Para obtener más información sobre la creación y ejecución de trabajos de Azure Databricks, consulte Creación y ejecución de trabajos de Azure Databricks.