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
- CLI de Databricks, versión 0.218.0 o posterior. Para comprobar la versión de la CLI de Databricks instalada, ejecute el comando
databricks -v
. Para instalar la CLI de Databricks, consulte Instalación o actualización de la CLI de Databricks. - El área de trabajo remota debe tener habilitados los archivos del área de trabajo. Consulte ¿Qué son los archivos del área de trabajo?
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.
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>
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 comandodatabricks auth env --profile <profile-name>
.En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.
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.
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.
Utilice la versión de la CLI de Databricks para ejecutar el comando
bundle init
:databricks bundle init
En
Template to use
, deje el valor predeterminado dedefault-python
presionandoEnter
.En
Unique name for this project
, deje el valor predeterminado demy_project
o escriba un valor diferente y, a continuación, presioneEnter
. 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.Para
Include a stub (sample) notebook
, seleccioneno
y presioneEnter
. Esto indica al CLI de Databricks que no agregue un bloc de notas de ejemplo a su agrupación.Para
Include a stub (sample) DLT pipeline
, seleccioneno
y presioneEnter
. 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.En
Include a stub (sample) Python package
, deje el valor predeterminado deyes
presionandoEnter
. 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
opoetry --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
opython --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
odatabricks --version
. Consulte Instalación o actualización de la CLI de Databricks.
Realice los siguientes cambios en el conjunto de proyecto:
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
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:
- Para
Package name
, escriba el nombre de la carpeta secundaria en/src
y presioneEnter
. También debe ser el valorname
del paquete que se define en el archivosetup.py
del conjunto. - En
Version
, escriba0.0.1
y presioneEnter
. Esto coincide con el número de versión que se define en el archivosrc/<project-name>/__init__.py
del conjunto. - Para
Description
, escribawheel file based on <project-name>/src
(reemplazando<project-name>
por el nombre del proyecto) y presioneEnter
. Esto coincide con el valordescription
que se define en el archivosetup.py
de la plantilla. - Para
Author
, presioneEnter
. El valor predeterminado coincide con el autor que se define en el archivosetup.py
de la plantilla. - Para
License
, presioneEnter
. No hay ninguna licencia definida en la plantilla. - 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 presioneEnter
. - Para
Would you like to define your main dependencies interactively?
, escribano
y presioneEnter
. Definirá las dependencias más tarde. - Para
Would you like to define your development dependencies interactively?
, escribano
y presioneEnter
. Definirá las dependencias más tarde. - Para
Do you confirm generation?
, presioneEnter
.
- Para
Después de completar las solicitudes, Poetry agrega un archivo
pyproject.toml
al conjunto de proyecto. Para obtener información sobre el archivopyproject.toml
, consulte El archivo pyproject.toml.Desde el directorio raíz del proyecto del conjunto, indique a
poetry
que lea el archivopyproject.toml
, resuelva las dependencias y las instale, cree un archivopoetry.lock
para bloquear las dependencias y, por último, crear un entorno virtual. Para ello, ejecute el siguiente comando:poetry install
Agregue la siguiente sección al final del archivo
pyproject.toml
, reemplazando<project-name>
por el nombre del directorio que contiene el archivosrc/<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.
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.
Elimine los archivos
setup.py
yrequirements-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.
En el directorio raíz, use la CLI de Databricks para ejecutar el comando
bundle validate
de la siguiente manera:databricks bundle validate
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.
Si usa
setuptools
, instale los paqueteswheel
ysetuptools
si aún no lo ha hecho, ejecutando el siguiente comando:pip3 install --upgrade wheel setuptools
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
Si desea comprobar si se implementó el archivo wheel de Python compilado localmente:
- En la barra lateral del área de trabajo de Azure Databricks, haga clic en Área de trabajo.
- 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.
Si desea comprobar si se creó el trabajo:
- En la barra lateral del área de trabajo de Azure Databricks, haga clic en Flujos de trabajo.
- En la pestaña Trabajos, haga clic en [dev
<your-username>
]<project-name>
_job. - 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.
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
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.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:
- Cómo crear, compilar y trabajar con archivos wheel de Python con Poetry o
setuptools
. Para Poetry, consulte uso básico. Parasetuptools
, consulte la Guía del usuario sobre empaquetados de Python. - Uso de archivos wheel de Python como parte de un trabajo de Azure Databricks. Consulte Uso de un archivo wheel de Python en trabajos de Azure Databricks.
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.
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>
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 comandodatabricks auth env --profile <profile-name>
.En el explorador web, complete las instrucciones en pantalla para iniciar sesión en el área de trabajo de Azure Databricks.
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.
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
Deje vacío el archivo
__init__.py
.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()
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
Agregue el siguiente código al archivo
pyproject.toml
osetup.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.
- Reemplace
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.
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 entradaswhl
de la matrizlibraries
.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 consetuptools
. La asignación deartifacts
contiene una o varias definiciones de artefactos con las siguientes asignaciones:- La asignación de
type
debe estar presente y establecerse enwhl
para especificar que se va a compilar un archivo wheel de Python. Parasetuptools
,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 archivopyproject.toml
de Poetry o al archivosetup.py
parasetuptools
. Esta ruta de acceso es relativa al archivodatabricks.yml
. Parasetuptools
, esta ruta de acceso es.
(el mismo directorio que el archivodatabricks.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. Parasetuptools
, este comando espython3 setup.py bdist wheel
de forma predeterminada. - La asignación de
files
consta de una o varias asignaciones desource
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.
- La asignación de
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
opoetry --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
opython --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
odatabricks --version
. Consulte Instalación o actualización de la CLI de Databricks.
- 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
Si usa
setuptools
, instale los paqueteswheel
ysetuptools
si aún no están instalados, ejecutando el siguiente comando:pip3 install --upgrade wheel setuptools
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.
Desde el directorio raíz, valide el archivo de configuración de la agrupación:
databricks bundle validate
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
Ejecute el trabajo implementado, que usa el cuaderno implementado para llamar al archivo wheel de Python implementado:
databricks bundle run -t dev wheel-job
En la salida, copie
Run URL
y péguelo en la barra de direcciones de su navegador web.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.