Compartir a través de


Desarrollo de un wheel de Python usando conjuntos de recursos de Databricks

En este artículo se describe cómo compilar, implementar y ejecutar archivos wheel de Python como parte de un proyecto de un conjunto de recursos de Databricks. Consulte ¿Qué son las agrupaciones de recursos de Databricks?

Requisitos

Decisión: crear la agrupación manualmente o con una plantilla

Decida si desea crear una agrupación de inicio con una plantilla o crear la agrupación manualmente. La creación de la agrupación con una plantilla es más rápida y sencilla, pero la agrupación podría generar contenido innecesario y la configuración predeterminada de la misma deberá personalizarse aún más para las aplicaciones reales. La creación de la agrupación manualmente le proporcionará control total sobre la configuración de esta, pero se necesita estar familiarizado con su funcionamiento, ya que se realizará todo el trabajo desde el principio. Elija uno de los siguientes conjuntos de pasos:

Creación de la agrupación a partir de una plantilla

En estos pasos, creará la agrupación con la plantilla de agrupación predeterminada de Azure Databricks para Python. Estos pasos le guiarán en la creación de un paquete que consiste en archivos para crear un archivo wheel de Python y la definición de un trabajo Azure Databricks para crear este archivo wheel de Python. A continuación, valide, implemente y compile los archivos implementados en un archivo wheel de Python desde el trabajo wheel de Python dentro de su área de trabajo de Azure Databricks.

La plantilla del conjunto predeterminado de Azure Databricks para Python usa setuptools para compilar el archivo wheel de Python. Si prefiere usar Poetry para compilar el archivo wheel de Python, siga las instrucciones que se indican más adelante en esta sección para intercambiar la implementación de setuptools para una implementación de Poetry en su lugar.

Paso 1 Configuración de la autenticación

En este paso, configurará la autenticación entre la CLI de Databricks en la máquina de desarrollo y el área de trabajo de Azure Databricks. En este artículo se asume que quiere usar la autenticación de usuario a máquina (U2M) de OAuth y un perfil de configuración de Azure Databricks correspondiente denominado DEFAULT para la autenticación.

Nota:

La autenticación U2M es adecuada para probar estos pasos en tiempo real. Para flujos de trabajo totalmente automatizados, Databricks recomienda usar la autenticación de máquina a máquina (M2M) de OAuth en su lugar. Consulte las instrucciones de configuración de autenticación de M2M en Autenticación.

  1. Use el CLI de Databricks para iniciar la administración de tokens de OAuth localmente mediante la ejecución del siguiente comando para cada área de trabajo de destino.

    En el comando siguiente, reemplace <workspace-url> por la dirección URL de Azure Databricks por área de trabajo, por ejemplo, https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. La CLI de Databricks le pide que guarde la información que especificó como un perfil de configuración de Azure Databricks. Presione Enter para aceptar el nombre del perfil sugerido o escriba el nombre de un perfil nuevo o existente. Cualquier perfil existente con el mismo nombre se sobrescribe con la información que especificó. Puede usar perfiles para cambiar rápidamente el contexto de autenticación entre varias áreas de trabajo.

    Para obtener una lista de los perfiles existentes, en un terminal o símbolo del sistema independiente, use la CLI de Databricks para ejecutar el comando databricks auth profiles. Para ver la configuración existente de un perfil específico, ejecute el comando databricks auth env --profile <profile-name>.

  3. En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.

  4. Para ver el valor actual del token de OAuth de un perfil y la próxima marca de tiempo de expiración del token’, ejecute uno de los siguientes comandos:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Si tiene varios perfiles con el mismo valor de --host, es posible que tenga que especificar las opciones --host y -p para ayudar a la CLI de Databricks a encontrar la información correcta del token de OAuth coincidente.

Paso 2: crear el conjunto

Una agrupación contiene los artefactos que desea implementar y la configuración de los flujos de trabajo que desea ejecutar.

  1. Use el terminal o el símbolo del sistema para cambiar a un directorio de la máquina de desarrollo local que contendrá la agrupación generada de la plantilla.

  2. Utilice la versión de la CLI de Databricks para ejecutar el comando bundle init:

    databricks bundle init
    
  3. En Template to use, deje el valor predeterminado de default-python presionando Enter.

  4. En Unique name for this project, deje el valor predeterminado de my_project o escriba un valor diferente y, a continuación, presione Enter. Con ello se determina el nombre del directorio raíz de esta agrupación. Este directorio raíz se crea en el directorio de trabajo actual.

  5. Para Include a stub (sample) notebook, seleccione no y presione Enter. Esto indica al CLI de Databricks que no agregue un bloc de notas de ejemplo a su agrupación.

  6. Para Include a stub (sample) DLT pipeline, seleccione no y presione Enter. Con ello se indica a la CLI de Databricks que no defina una canalización de Delta Live Tables de ejemplo en la agrupación.

  7. En Include a stub (sample) Python package, deje el valor predeterminado de yes presionando Enter. Esto indica a la CLI de Databricks que agregue archivos de paquete de rueda de Python de muestra e instrucciones de compilación relacionadas a su agrupación.

Paso 3: Exploración de la agrupación

Para ver los archivos que generó la plantilla, cambie al directorio raíz de la agrupación recién creada y abra este directorio con su IDE preferido como, por ejemplo, Visual Studio Code. Entre los tipos de especial interés se incluyen los siguientes:

  • databricks.yml: Este archivo especifica el nombre programático del paquete, incluye una referencia a la definición del trabajo de la rueda de Python y especifica la configuración del área de trabajo de destino.
  • resources/<project-name>_job.yml: Este archivo especifica la configuración del trabajo de la rueda Python.
  • src/<project-name>: Este directorio incluye los archivos que el trabajo wheel de Python utiliza para crear el archivo wheel de Python.

Nota:

Si quiere instalar un archivo wheel de Python en un clúster de destino que tenga Databricks Runtime 12.2 LTS o inferior instalado, debe agregar la siguiente asignación de nivel superior al archivo databricks.yml:

# Applies to all tasks of type python_wheel_task.
experimental:
  python_wheel_wrapper: true

Esta asignación indica a la CLI de Databricks que haga lo siguiente:

  • Implemente una copia del archivo wheel de Python en segundo plano. Esta ruta de acceso de implementación suele ser ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
  • Cree un cuaderno en segundo plano que contenga las instrucciones para instalar el archivo wheel de Python implementado anteriormente en el clúster de destino. Esta ruta de acceso del cuaderno suele ser ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
  • Cuando se ejecuta un trabajo que contiene una tarea wheel de Python y esas tareas hacen referencia al archivo wheel de Python, se crea un trabajo en segundo plano que ejecuta el cuaderno anterior.

No es necesario especificar esta asignación para los clústeres de destino con Databricks Runtime 13.1 o posterior instalado, ya que las instalaciones de wheel de Python del sistema de archivos del área de trabajo de Azure Databricks se instalarán automáticamente en estos clústeres de destino.

Paso 4: actualizar el conjunto del proyecto para usar Poesía

De forma predeterminada, la plantilla del conjunto especifica la compilación del archivo wheel de Python mediante setuptools junto con los archivos setup.py y requirements-dev.txt. Si desea mantener estos valores predeterminados, vaya directamente al Paso 5: validar el archivo de configuración de conjunto del proyecto.

Para actualizar el conjunto de proyecto para usar Poesía en lugar de setuptools, asegúrese de que la máquina de desarrollo local cumple los siguientes requisitos:

  • Poetry, versión 1.6 o posterior. Para comprobar la versión que tiene instalada de Poetry, ejecute el comando poetry -V o poetry --version. Para la instalación o la actualización de Poetry, consulte Instalación.
  • Python, versión 3.10 o superior. Para comprobar la versión de Python, ejecute el comando python -V o python --version.
  • CLI de Databricks versión 0.209.0 o posterior. Para su versión de la CLI de Databricks, ejecute el comando databricks -v o databricks --version. Consulte Instalación o actualización de la CLI de Databricks.

Realice los siguientes cambios en el conjunto de proyecto:

  1. En el directorio raíz del conjunto, indique a poetry que inicialice las compilaciones de el wheel de Python para Poetry mediante la ejecución del siguiente comando:

    poetry init
    
  2. Poetry mostrará varias confirmaciones para que las complete. Para las compilaciones de wheel de Python, responda a estas indicaciones como se indica a continuación para que coincida con la configuración predeterminada relacionada en el conjunto del proyecto:

    1. Para Package name, escriba el nombre de la carpeta secundaria en /src y presione Enter. También debe ser el valor name del paquete que se define en el archivo setup.py del conjunto.
    2. En Version, escriba 0.0.1 y presione Enter. Esto coincide con el número de versión que se define en el archivo src/<project-name>/__init__.py del conjunto.
    3. Para Description, escriba wheel file based on <project-name>/src (reemplazando <project-name> por el nombre del proyecto) y presione Enter. Esto coincide con el valor description que se define en el archivo setup.py de la plantilla.
    4. Para Author, presione Enter. El valor predeterminado coincide con el autor que se define en el archivo setup.py de la plantilla.
    5. Para License, presione Enter. No hay ninguna licencia definida en la plantilla.
    6. Para Compatible Python versions, escriba la versión de Python que coincida con la de los clústeres de Azure Databricks de destino (por ejemplo, ^3.10) y presione Enter.
    7. Para Would you like to define your main dependencies interactively?, escriba no y presione Enter. Definirá las dependencias más tarde.
    8. Para Would you like to define your development dependencies interactively?, escriba no y presione Enter. Definirá las dependencias más tarde.
    9. Para Do you confirm generation?, presione Enter.
  3. Después de completar las solicitudes, Poetry agrega un archivo pyproject.toml al conjunto de proyecto. Para obtener información sobre el archivo pyproject.toml, consulte El archivo pyproject.toml.

  4. Desde el directorio raíz del proyecto del conjunto, indique a poetry que lea el archivo pyproject.toml, resuelva las dependencias y las instale, cree un archivo poetry.lock para bloquear las dependencias y, por último, crear un entorno virtual. Para ello, ejecute el siguiente comando:

    poetry install
    
  5. Agregue la siguiente sección al final del archivo pyproject.toml, reemplazando <project-name> por el nombre del directorio que contiene el archivo src/<project-name>/main.py (por ejemplo, my_project):

    [tool.poetry.scripts]
    main = "<project-name>.main:main"
    

    La sección especifica el punto de entrada del wheel de Python para el trabajo del wheel de Python.

  6. Agregue la siguiente asignación en el nivel superior del archivo databricks.yml del conjunto:

    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    

    Esta asignación indica a la CLI de Databricks que use Poetry para crear un archivo wheel de Python.

  7. Elimine los archivos setup.py y requirements-dev.txt del conjunto, ya que Poetry no los necesita.

Paso 5: validación del archivo de configuración de conjunto del proyecto

En este paso, comprobará si la configuración de la agrupación es válida.

  1. En el directorio raíz, use la CLI de Databricks para ejecutar el comando bundle validate de la siguiente manera:

    databricks bundle validate
    
  2. Si se devuelve un resumen de la configuración de la agrupación, indica que la validación se ha realizado correctamente. Si se devuelven errores, corrija los errores y repita este paso.

Si realiza algún cambio en la agrupación después de este paso, debe repetir el paso para comprobar si la configuración de la agrupación sigue siendo válida.

Paso 6: Compilar el archivo wheel de Python e implementar el proyecto local en el área de trabajo remota

En este paso, se compila el archivo wheel de Python, se implementa en el área de trabajo remota de Azure Databricks y se crea el trabajo de Azure Databricks en el área de trabajo.

  1. Si usa setuptools, instale los paquetes wheel y setuptools si aún no lo ha hecho, ejecutando el siguiente comando:

    pip3 install --upgrade wheel setuptools
    
  2. En el terminal de Visual Studio Code, use la CLI de Databricks para ejecutar el comando bundle deploy, tal y como se indica a continuación:

    databricks bundle deploy -t dev
    
  3. Si desea comprobar si se implementó el archivo wheel de Python compilado localmente:

    1. En la barra lateral del área de trabajo de Azure Databricks, haga clic en Área de trabajo.
    2. Haga clic en la siguiente carpeta: Área de trabajo > Usuarios ><your-username>> .bundle ><project-name>> dev > artefactos > .internal ><random-guid>.

    El archivo wheel de Python debe estar en esta carpeta.

  4. Si desea comprobar si se creó el trabajo:

    1. En la barra lateral del área de trabajo de Azure Databricks, haga clic en Flujos de trabajo.
    2. En la pestaña Trabajos, haga clic en [dev <your-username>] <project-name>_job.
    3. Haga clic en la pestaña Tareas.

    Debe haber una tarea: main_task.

Si realiza algún cambio en el conjunto después de este paso, debe repetir los pasos 5 y 6 para comprobar si la configuración de el conjunto sigue siendo válida y volver a implementar el proyecto.

Paso 7: ejecutar el proyecto implementado

En este paso, ejecutará el trabajo de Azure Databricks en el área de trabajo.

  1. En el directorio raíz, use la CLI de Databricks para ejecutar el comando bundle run, como se indica a continuación, reemplazando <project-name> por el nombre del proyecto del paso 2:

    databricks bundle run -t dev <project-name>_job
    
  2. Copie el valor de Run URL que aparece en el terminal y pegue este valor en el explorador web para abrir el área de trabajo de Azure Databricks.

  3. En el área de trabajo de Azure Databricks, después de que la tarea se complete correctamente y muestre una barra de título verde, haga clic en la tarea main_task para ver los resultados.

Si realiza algún cambio en el conjunto después de este paso, debe repetir los pasos 5-7 para comprobar si la configuración del conjunto sigue siendo válida, volver a implementar el proyecto y ejecutar el proyecto implementado de nuevo.

Ha llegado al final de los pasos para crear una agrupación con una plantilla.

Creación de la agrupación de forma manual

En estos pasos, creará el conjunto desde el principio a mano. Estos pasos le guiarán en la creación de un conjunto que consiste en archivos para compilar un archivo wheel de Python y la definición de un trabajo de Databricks para crear este archivo wheel de Python. A continuación, valide, implemente y compile los archivos implementados en un archivo wheel de Python desde el trabajo wheel de Python dentro de su área de trabajo de Databricks.

Estos pasos incluyen agregar contenido a un archivo YAML. Opcionalmente, podría querer usar un entorno de desarrollo integrado (IDE) que proporcione sugerencias y acciones automáticas de esquema al trabajar con archivos YAML. En los pasos siguientes se usa Visual Studio Code con la extensión YAML instalada desde Visual Studio Code Marketplace.

Estos pasos suponen que ya lo sabe:

Siga estas instrucciones para crear un conjunto de ejemplo que compile un archivo wheel de Python con Poetry o setuptools, lo implemente y, a continuación, ejecute el archivo wheel de Python implementado.

Si ya ha creado un archivo wheel de Python y solo desea implementarlo y ejecutarlo, adelántese para especificar la configuración del wheel de Python en el archivo de configuración del conjunto en el Paso 3: Crear el archivo de configuración del conjunto.

Paso 1 Configuración de la autenticación

En este paso, configurará la autenticación entre la CLI de Databricks en la máquina de desarrollo y el área de trabajo de Azure Databricks. En este artículo se asume que quiere usar la autenticación de usuario a máquina (U2M) de OAuth y un perfil de configuración de Azure Databricks correspondiente denominado DEFAULT para la autenticación.

Nota:

La autenticación U2M es adecuada para probar estos pasos en tiempo real. Para flujos de trabajo totalmente automatizados, Databricks recomienda usar la autenticación de máquina a máquina (M2M) de OAuth en su lugar. Consulte las instrucciones de configuración de autenticación de M2M en Autenticación.

  1. Use el CLI de Databricks para iniciar la administración de tokens de OAuth localmente mediante la ejecución del siguiente comando para cada área de trabajo de destino.

    En el comando siguiente, reemplace <workspace-url> por la dirección URL de Azure Databricks por área de trabajo, por ejemplo, https://adb-1234567890123456.7.azuredatabricks.net.

    databricks auth login --host <workspace-url>
    
  2. La CLI de Databricks le pide que guarde la información que especificó como un perfil de configuración de Azure Databricks. Presione Enter para aceptar el nombre del perfil sugerido o escriba el nombre de un perfil nuevo o existente. Cualquier perfil existente con el mismo nombre se sobrescribe con la información que especificó. Puede usar perfiles para cambiar rápidamente el contexto de autenticación entre varias áreas de trabajo.

    Para obtener una lista de los perfiles existentes, en un terminal o símbolo del sistema independiente, use la CLI de Databricks para ejecutar el comando databricks auth profiles. Para ver la configuración existente de un perfil específico, ejecute el comando databricks auth env --profile <profile-name>.

  3. En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.

  4. Para ver el valor actual del token de OAuth de un perfil y la próxima marca de tiempo de expiración del token’, ejecute uno de los siguientes comandos:

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    Si tiene varios perfiles con el mismo valor de --host, es posible que tenga que especificar las opciones --host y -p para ayudar a la CLI de Databricks a encontrar la información correcta del token de OAuth coincidente.

Paso 2: crear el conjunto

Una agrupación contiene los artefactos que desea implementar y la configuración de los flujos de trabajo que desea ejecutar.

  1. En la raíz del conjunto, cree las siguientes carpetas y archivos, en función de si usa Poetry o setuptools para crear archivos wheel de Python:

    Poetry

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── pyproject.toml
    

    Setuptools

    ├── src
    │     └── my_package
    │           ├── __init__.py
    │           ├── main.py
    │           └── my_module.py
    └── setup.py
    
  2. Deje vacío el archivo __init__.py.

  3. Agregue el siguiente código al archivo main.py y, a continuación, guarde el archivo:

    from my_package.my_module import *
    
    def main():
    
      first = 200
      second = 400
    
      print(f"{first} + {second} = {add_two_numbers(first, second)}")
      print(f"{second} - {first} = {subtract_two_numbers(second, first)}")
      print(f"{first} * {second} = {multiply_two_numbers(first, second)}")
      print(f"{second} / {first} = {divide_two_numbers(second, first)}")
    
    if __name__ == "__main__":
      main()
    
  4. Agregue el siguiente código al archivo my_module.py y, a continuación, guarde el archivo:

    def add_two_numbers(a, b):
      return a + b
    
    def subtract_two_numbers(a, b):
      return a - b
    
    def multiply_two_numbers(a, b):
      return a * b
    
    def divide_two_numbers(a, b):
      return a / b
    
  5. Agregue el siguiente código al archivo pyproject.toml o setup.py y, a continuación, guarde el archivo:

    Pyproject.toml

    [tool.poetry]
    name = "my_package"
    version = "0.0.1"
    description = "<my-package-description>"
    authors = ["my-author-name <my-author-name>@<my-organization>"]
    
    [tool.poetry.dependencies]
    python = "^3.10"
    
    [build-system]
    requires = ["poetry-core"]
    build-backend = "poetry.core.masonry.api"
    
    [tool.poetry.scripts]
    main = "my_package.main:main"
    
    • Reemplace my-author-name por el nombre de contacto principal de la organización.
    • Reemplace my-author-name>@<my-organization por la dirección de contacto de correo electrónico principal de la organización.
    • Reemplace <my-package-description> por una descripción para mostrar del archivo wheel de Python.

    Setup.py

    from setuptools import setup, find_packages
    
    import src
    
    setup(
      name = "my_package",
      version = "0.0.1",
      author = "<my-author-name>",
      url = "https://<my-url>",
      author_email = "<my-author-name>@<my-organization>",
      description = "<my-package-description>",
      packages=find_packages(where='./src'),
      package_dir={'': 'src'},
      entry_points={
        "packages": [
          "main=my_package.main:main"
        ]
      },
      install_requires=[
        "setuptools"
      ]
    )
    
    • Remplace https://<my-url> por la dirección URL de la organización.
    • Reemplace <my-author-name> por el nombre de contacto principal de la organización.
    • Reemplace <my-author-name>@<my-organization> por la dirección de contacto de correo electrónico principal de la organización.
    • Reemplace <my-package-description> por una descripción para mostrar del archivo wheel de Python.

Paso 3: crear el archivo de configuración del conjunto

Un archivo de configuración de conjunto describe los artefactos que desea implementar y los flujos de trabajo que desea ejecutar.

  1. En la raíz del conjunto, agregue un archivo de configuración de conjunto denominado databricks.yml. Agregue el siguiente código a este archivo:

    Poetry

    Nota:

    Si ya ha creado un archivo wheel de Python y solo quiere implementarlo, modifique el siguiente archivo de configuración de la agrupación para omitir la asignación de artifacts. La CLI de Databricks asumirá que el archivo wheel de Python ya está compilado e implementará automáticamente los archivos especificados en las entradas whl de la matriz libraries.

    bundle:
      name: my-wheel-bundle
    
    artifacts:
      default:
        type: whl
        build: poetry build
        path: .
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Setuptools

    bundle:
      name: my-wheel-bundle
    
    resources:
      jobs:
        wheel-job:
          name: wheel-job
          tasks:
            - task_key: wheel-task
              new_cluster:
                spark_version: 13.3.x-scala2.12
                node_type_id: Standard_DS3_v2
                data_security_mode: USER_ISOLATION
                num_workers: 1
              python_wheel_task:
                entry_point: main
                package_name: my_package
              libraries:
                - whl: ./dist/*.whl
    
    targets:
      dev:
        workspace:
        host: <workspace-url>
    

    Reemplace <workspace-url> por la dirección URL por área de trabajo; por ejemplo, https://adb-1234567890123456.7.azuredatabricks.net.

    La asignación de artifacts es necesaria para crear archivos wheel de Python con Poetry y es opcional crear archivos wheel de Python con setuptools. La asignación de artifacts contiene una o varias definiciones de artefactos con las siguientes asignaciones:

    • La asignación de type debe estar presente y establecerse en whl para especificar que se va a compilar un archivo wheel de Python. Para setuptools, whl es el valor predeterminado si no se especifica ninguna definición de artefacto.
    • La asignación de path indica la ruta de acceso al archivo pyproject.toml de Poetry o al archivo setup.py para setuptools. Esta ruta de acceso es relativa al archivo databricks.yml. Para setuptools, esta ruta de acceso es . (el mismo directorio que el archivo databricks.yml) de forma predeterminada.
    • La asignación de build indica los comandos de compilación personalizados que se van a ejecutar para compilar el archivo wheel de Python. Para setuptools, este comando es python3 setup.py bdist wheel de forma predeterminada.
    • La asignación de files consta de una o varias asignaciones de source que especifican los archivos adicionales que se van a incluir en la compilación de la rueda de Python. No tiene ningún valor predeterminado.

    Nota:

    Si quiere instalar un archivo wheel de Python en un clúster de destino que tenga Databricks Runtime 12.2 LTS o inferior instalado, debe agregar la siguiente asignación de nivel superior al archivo databricks.yml:

    # Applies to jobs with python_wheel_task and that use
    # clusters with Databricks Runtime 13.0 or below installed.
    experimental:
      python_wheel_wrapper: true
    

    Esta asignación indica a la CLI de Databricks que haga lo siguiente:

    • Implementa una copia del archivo wheel de Python en segundo plano. Esta ruta de acceso de implementación suele ser ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whl.
    • Crea un cuaderno en segundo plano que contiene las instrucciones para instalar el archivo wheel de Python implementado anteriormente en el clúster de destino. Esta ruta de acceso del cuaderno suele ser ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>.
    • Cuando se ejecuta un trabajo que contiene una tarea wheel de Python y esa tarea hace referencia al archivo wheel de Python, se crea un trabajo en segundo plano que ejecuta el cuaderno anterior.

    No es necesario especificar esta asignación para los clústeres de destino con Databricks Runtime 13.1 o posterior instalado, ya que las instalaciones de wheel de Python del sistema de archivos del área de trabajo de Azure Databricks se instalarán automáticamente en estos clústeres de destino.

  2. Si usa Poetry, haga lo siguiente:

    • Instalar Poetry, versión 1.6 o posterior, si aún no está instalado. Para comprobar la versión que tiene instalada de Poetry, ejecute el comando poetry -V o poetry --version.
    • Asegúrese de que está instalada la versión 3.10. o posterior de Python. Para comprobar la versión de Python, ejecute el comando python -V o python --version.
    • Asegúrese de que tiene la versión 0.209.0 o una posterior de CLI de Databricks. Para su versión de la CLI de Databricks, ejecute el comando databricks -v o databricks --version. Consulte Instalación o actualización de la CLI de Databricks.
  3. Si usa setuptools, instale los paquetes wheel y setuptools si aún no están instalados, ejecutando el siguiente comando:

    pip3 install --upgrade wheel setuptools
    
  4. Si tiene previsto almacenar este conjunto con un proveedor de Git, agregue un archivo .gitignore en la raíz del proyecto y agregue las siguientes entradas a este archivo:

    Poetry

    .databricks
    dist
    

    Setuptools

    .databricks
    build
    dist
    src/my_package/my_package.egg-info
    

Paso 4: Validación del archivo de configuración de la agrupación del proyecto

En este paso, comprobará si la configuración de la agrupación es válida.

  1. Desde el directorio raíz, valide el archivo de configuración de la agrupación:

    databricks bundle validate
    
  2. Si se devuelve un resumen de la configuración de la agrupación, indica que la validación se ha realizado correctamente. Si se devuelven errores, corrija los errores y repita este paso.

Si realiza algún cambio en la agrupación después de este paso, debe repetir el paso para comprobar si la configuración de la agrupación sigue siendo válida.

Paso 5: Compilar el archivo wheel de Python e implementar el proyecto local en el área de trabajo remota

Compile localmente el archivo wheel de Python, impleméntelo en el área de trabajo, implemente el cuaderno en el área de trabajo y cree el trabajo en el área de trabajo:

databricks bundle deploy -t dev

Paso 6: ejecución del proyecto implementado

  1. Ejecute el trabajo implementado, que usa el cuaderno implementado para llamar al archivo wheel de Python implementado:

    databricks bundle run -t dev wheel-job
    
  2. En la salida, copie Run URL y péguelo en la barra de direcciones de su navegador web.

  3. En la página Salida de la ejecución del trabajo, aparecerán los siguientes resultados:

    200 + 400 = 600
    400 - 200 = 200
    200 * 400 = 80000
    400 / 200 = 2.0
    

Si realiza algún cambio en la agrupación después de este paso, debe repetir los pasos del 3 al 5 para comprobar si la configuración de la agrupación sigue siendo válida, volver a implementar el proyecto y ejecutarlo.

Compilar e instalar un archivo wheel de Python para un trabajo

Para compilar un archivo wheel de Python con Poetry o setuptools y, a continuación, usar ese archivo wheel de Python en un trabajo, debe agregar uno o dos tipos de asignaciones al archivo databricks.yml.

Si usa Poetry, debe incluir la siguiente asignación de artifacts en el archivo databricks.yml. Esta asignación ejecuta el comando poetry build y usa el archivo pyproject.toml que se encuentra en el mismo directorio que el archivo databricks.yml:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Nota:

La asignación de artifacts es opcional para setuptools. De forma predeterminada, para setuptools la CLI de Databricks ejecuta el comando python3 setup.py bdist_wheel y usa el archivo setup.py que se encuentra en el mismo directorio que el archivo databricks.yml. La CLI de Databricks supone que ya ha ejecutado un comando como pip3 install --upgrade wheel setuptools para instalar los paquetes de wheel y setuptools si aún no están instalados.

Además, la asignación de libraries de la tarea debe contener un valor whl que especifique la ruta al archivo de rueda de Python creado en relación con el archivo de configuración en el que se declara. En el ejemplo siguiente se muestra esto en una tarea de cuaderno (los puntos suspensivos indican el contenido omitido para mayor brevedad):

resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      tasks:
        - task_key: my-notebook-job-notebook-task
          notebook_task:
            notebook_path: ./my_notebook.py
          libraries:
            - whl: ./dist/*.whl
          new_cluster:
            # ...

Compilar e instalar un archivo wheel de Python para una canalización

Para compilar un archivo wheel de Python con Poetry o setuptools y luego hacer referencia a ese archivo wheel de Python en una canalización de Delta Live Tables, debe agregar una asignación al archivo databricks.yml si usa Poetry, y debe agregar un comando %pip install al cuaderno de canalización, como se indica a continuación.

Si usa Poetry, debe incluir la siguiente asignación de artifacts en el archivo databricks.yml. Esta asignación ejecuta el comando poetry build y usa el archivo pyproject.toml que se encuentra en el mismo directorio que el archivo databricks.yml:

artifacts:
  default:
    type: whl
    build: poetry build
    path: .

Nota:

La asignación de artifacts es opcional para setuptools. De forma predeterminada, para setuptools la CLI de Databricks ejecuta el comando python3 setup.py bdist_wheel y usa el archivo setup.py que se encuentra en el mismo directorio que el archivo databricks.yml. La CLI de Databricks supone que ya ha ejecutado un comando como pip3 install --upgrade wheel setuptools para instalar los paquetes de wheel y setuptools si aún no están instalados.

Además, el cuaderno de canalización relacionado debe incluir un comando %pip install para instalar el archivo wheel de Python compilado. Consulte bibliotecas de Python.