Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporciona una configuración de ejemplo para las características de Agrupaciones de recursos de Databricks y los casos de uso comunes de agrupación.
Los ejemplos de agrupación completos, descritos en la tabla siguiente, están disponibles en el repositorio de GitHub bundle-examples:
| Nombre del lote | Descripción |
|---|---|
| app_with_database | Un paquete con una aplicación de Databricks respaldada por una base de datos Postgres OLTP |
| dashboard_nyc_taxi | Un paquete con un panel de IA/BI y una tarea que captura una instantánea del panel y envía por correo electrónico a un suscriptor. |
| database_with_catalog | Conjunto que define una instancia de base de datos OLTP y un catálogo de bases de datos |
| databricks_app | Un paquete que define una aplicación de Databricks |
| development_cluster | Paquete que define y usa un clúster para desarrollo (multiuso) |
| job_read_secret | Agrupación que define un ámbito secreto y un trabajo con una tarea que lee en él |
| job_with_multiple_wheels | Una agrupación que define y usa un trabajo con dependencias de varias ruedas |
| job_with_run_job_tasks | Una agrupación con varios trabajos con tareas de ejecución |
| job_with_sql_notebook | Una agrupación con un trabajo que usa una tarea de cuaderno de SQL |
| pipeline_with_schema | Un paquete que define un esquema de Catálogo de Unity y una tubería que lo usa |
| private_wheel_packages | Una agrupación que usa un paquete de rueda privado de un trabajo |
| python_wheel_poetry | Una agrupación que construye un whl con Poetry |
| trabajo_sin_servidor | Un paquete que utiliza computación sin servidor para ejecutar una tarea |
| compartir_archivos_a_través_de_paquetes | Lote que incluye archivos ubicados fuera del directorio raíz del lote. |
| spark_jar_task | Agrupación que define y usa una tarea JAR de Spark |
| write_from_job_to_volume | Un paquete que escribe un archivo en un volumen del Catálogo Unity |
Escenarios de paquetes
Esta sección contiene ejemplos de configuración que muestran el uso de mapeos de paquetes de nivel superior. Consulte Referencia de configuración.
paquete que carga un archivo JAR en el catálogo de Unity
Puede especificar volúmenes de Unity Catalog como una ruta de acceso de artefacto para que todos los artefactos, como archivos JAR y archivos de rueda, se carguen en volúmenes del Unity Catalog. En el siguiente paquete de ejemplo se compila y carga un archivo JAR en el catálogo de Unity. Para obtener información sobre la asignación de artifact_path, vea artifact_path. Para obtener información sobre artifacts, consulte artefactos.
bundle:
name: jar-bundle
workspace:
host: https://myworkspace.cloud.databricks.com
artifact_path: /Volumes/main/default/my_volume
artifacts:
my_java_code:
path: ./sample-java
build: 'javac PrintArgs.java && jar cvfm PrintArgs.jar META-INF/MANIFEST.MF PrintArgs.class'
files:
- source: ./sample-java/PrintArgs.jar
resources:
jobs:
jar_job:
name: 'Spark Jar Job'
tasks:
- task_key: SparkJarTask
new_cluster:
num_workers: 1
spark_version: '14.3.x-scala2.12'
node_type_id: 'i3.xlarge'
spark_jar_task:
main_class_name: PrintArgs
libraries:
- jar: ./sample-java/PrintArgs.jar
Configuración del trabajo
Esta sección contiene ejemplos de configuración de trabajos. Para obtener más información sobre la configuración del trabajo, consulte trabajo.
Trabajo que usa cómputo sin servidor
Las agrupaciones de recursos de Databricks admiten trabajos que se ejecutan en proceso sin servidor. Consulte Ejecute sus trabajos de Lakeflow con computación sin servidor para flujos de trabajo. Para configurarlo, puede omitir la configuración de clusters para un trabajo con una tarea de cuaderno, o bien puede especificar un entorno como se muestra en los ejemplos siguientes. En el caso de las tareas de script de Python, de wheel de Python y de dbt, se requiere environment_key para el proceso sin servidor. Consulte environment_key.
# A serverless job (no cluster definition)
resources:
jobs:
serverless_job_no_cluster:
name: serverless_job_no_cluster
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: notebook_task
notebook_task:
notebook_path: ../src/notebook.ipynb
# A serverless job (environment spec)
resources:
jobs:
serverless_job_environment:
name: serverless_job_environment
tasks:
- task_key: task
spark_python_task:
python_file: ../src/main.py
# The key that references an environment spec in a job.
# https://docs.databricks.com/api/workspace/jobs/create#tasks-environment_key
environment_key: default
# A list of task execution environment specifications that can be referenced by tasks of this job.
environments:
- environment_key: default
# Full documentation of this spec can be found at:
# https://docs.databricks.com/api/workspace/jobs/create#environments-spec
spec:
environment_version: '2'
dependencies:
- my-library
Trabajo con archivos de varias ruedas
En las configuraciones de ejemplo siguientes se define una agrupación que contiene un trabajo con varios *.whl archivos.
# job.yml
resources:
jobs:
example_job:
name: 'Example with multiple wheels'
tasks:
- task_key: task
spark_python_task:
python_file: ../src/call_wheel.py
libraries:
- whl: ../my_custom_wheel1/dist/*.whl
- whl: ../my_custom_wheel2/dist/*.whl
new_cluster:
node_type_id: i3.xlarge
num_workers: 0
spark_version: 14.3.x-scala2.12
spark_conf:
'spark.databricks.cluster.profile': 'singleNode'
'spark.master': 'local[*, 4]'
custom_tags:
'ResourceClass': 'SingleNode'
# databricks.yml
bundle:
name: job_with_multiple_wheels
include:
- ./resources/job.yml
workspace:
host: https://myworkspace.cloud.databricks.com
artifacts:
my_custom_wheel1:
type: whl
build: poetry build
path: ./my_custom_wheel1
my_custom_wheel2:
type: whl
build: poetry build
path: ./my_custom_wheel2
targets:
dev:
default: true
mode: development
Trabajo con parámetros
La siguiente configuración de ejemplo define un trabajo con parámetros. Para obtener más información sobre cómo parametrizar trabajos, vea Parametrizar trabajos.
resources:
jobs:
job_with_parameters:
name: job_with_parameters
tasks:
- task_key: task_a
spark_python_task:
python_file: ../src/file.py
parameters:
- '--param1={{ job.parameters.param1 }}'
- '--param2={{ job.parameters.param2 }}'
new_cluster:
node_type_id: i3.xlarge
num_workers: 1
spark_version: 14.3.x-scala2.12
parameters:
- name: param1
default: value1
- name: param2
default: value1
Estos parámetros se pueden establecer en tiempo de ejecución pasando parámetros de trabajo a bundle run, por ejemplo:
databricks bundle run -- --param1=value2 --param2=value2
Trabajo que usa un archivo requirements.txt
En la siguiente configuración de ejemplo se define un trabajo que usa un archivo requirements.txt.
resources:
jobs:
job_with_requirements_txt:
name: 'Example job that uses a requirements.txt file'
tasks:
- task_key: task
job_cluster_key: default
spark_python_task:
python_file: ../src/main.py
libraries:
- requirements: /Workspace/${workspace.file_path}/requirements.txt
Trabajo según una programación
En los ejemplos siguientes se muestra la configuración de los trabajos que se ejecutan según una programación. Para obtener información sobre las programaciones y desencadenadores de tareas, consulte Tareas automatizadas con programaciones y desencadenadores.
Esta configuración define un trabajo que se ejecuta diariamente en un momento especificado:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
schedule:
quartz_cron_expression: '0 0 8 * * ?' # daily at 8am
timezone_id: UTC
pause_status: UNPAUSED
En esta configuración, el trabajo se ejecuta una semana después de la última ejecución del trabajo:
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-task
notebook_task:
notebook_path: ./my-notebook.ipynb
trigger:
pause_status: UNPAUSED
periodic:
interval: 1
unit: WEEKS
Configuración de canalización
Esta sección contiene ejemplos de configuración de canalización. Para obtener información sobre la configuración de la canalización, consulte canalización.
Canalización que usa proceso sin servidor
Las agrupaciones de recursos de Databricks admiten canalizaciones que se ejecutan en proceso sin servidor. Para definir esta configuración, establezca la configuración serverless de la canalización en true. La siguiente configuración de ejemplo define una canalización que se ejecuta en un proceso sin servidor con dependencias instaladas y un trabajo que desencadena una actualización de la canalización cada hora.
# A pipeline that runs on serverless compute
resources:
pipelines:
my_pipeline:
name: my_pipeline
target: ${bundle.environment}
serverless: true
environment:
dependencies:
- 'dist/*.whl'
catalog: users
libraries:
- notebook:
path: ../src/my_pipeline.ipynb
configuration:
bundle.sourcePath: /Workspace/${workspace.file_path}/src
# This defines a job to refresh a pipeline that is triggered every hour
resources:
jobs:
my_job:
name: my_job
# Run this job once an hour.
trigger:
periodic:
interval: 1
unit: HOURS
email_notifications:
on_failure:
- someone@example.com
tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.my_pipeline.id}