Compartir a través de


Adición de tareas a trabajos en conjuntos de recursos de Databricks

En este artículo se proporcionan ejemplos de varios tipos de tareas que puede agregar a trabajos de Azure Databricks en los conjuntos de recursos de Databricks. Consulte ¿Qué son los conjuntos de recursos de Databricks?

La mayoría de los tipos de tareas de trabajo tienen parámetros específicos de la tarea entre sus valores admitidos, pero también puede definir parámetros de trabajo que se pasan a las tareas. Las referencias de valor dinámico se admiten para los parámetros de trabajo, que permiten pasar valores específicos a la ejecución del trabajo entre tareas. Consulte ¿Qué es una referencia de valores dinámicos?.

Nota:

Puede invalidar la configuración de la tarea. Consulte Invalidar la configuración de tareas de trabajo en conjuntos de recursos de Databricks.

Sugerencia

Para generar rápidamente la configuración de recursos para un trabajo existente mediante el Databricks CLI, puede usar el comando bundle generate job. Vea comandos de agrupación.

Tarea Notebook

Esta tarea se usa para ejecutar un cuaderno.

En el ejemplo siguiente se agrega una tarea de cuaderno a un trabajo y se establece un parámetro de trabajo denominado my_job_run_id. La ruta de acceso del cuaderno que se va a implementar es relativa al archivo de configuración en el que se declara esta tarea. La tarea obtiene el cuaderno de su ubicación implementada en el área de trabajo de Azure Databricks. (Los puntos suspensivos indican contenido omitido, por brevedad).

# ...
resources:
  jobs:
    my-notebook-job:
      name: my-notebook-job
      # ...
      tasks:
        - task_key: my-notebook-task
          notebook_task:
            notebook_path: ./my-notebook.ipynb
      parameters:
        - name: my_job_run_id
          default: "{{job.run_id}}"
        # ...
# ...

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > notebook_task en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML. Consulte Tarea de cuadernos para trabajos.

Tarea de script de Python

Esta tarea se usa para ejecutar un archivo de Python.

En el ejemplo siguiente se agrega una tarea de script de Python a un trabajo. La ruta de acceso del archivo de Python que se va a implementar es relativa al archivo de configuración en el que se declara esta tarea. La tarea obtiene el archivo de Python de su ubicación implementada en el área de trabajo de Azure Databricks. (Los puntos suspensivos indican contenido omitido, por brevedad).

# ...
resources:
  jobs:
    my-python-script-job:
      name: my-python-script-job
      # ...
      tasks:
        - task_key: my-python-script-task
          spark_python_task:
            python_file: ./my-script.py
          # ...
# ...

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > spark_python_task en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML. Consulte también Tarea de script de Python para trabajos.

Tarea de paquete wheel de Python

Esta tarea se usa para ejecutar un archivo de rueda de Python.

En el ejemplo siguiente se agrega una tarea de paquete wheel de Python a un trabajo. La ruta de acceso del archivo de rueda de Python que se va a implementar es relativa al archivo de configuración en el que se declara esta tarea. Consulte dependencias de la biblioteca de conjuntos de recursos de Databricks. (Los puntos suspensivos indican contenido omitido, por brevedad).

# ...
resources:
  jobs:
    my-python-wheel-job:
      name: my-python-wheel-job
      # ...
      tasks:
        - task_key: my-python-wheel-task
          python_wheel_task:
            entry_point: run
            package_name: my_package
          libraries:
            - whl: ./my_package/dist/my_package-*.whl
          # ...
# ...

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > python_wheel_task en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML. Consulte también Desarrollo de un archivo wheel de Python mediante conjuntos de recursos de Databricks y Tarea wheel de Python para trabajos.

Tarea JAR

Esta tarea se usa para ejecutar un archivo JAR. Puede hacer referencia a bibliotecas JAR locales o a las de un área de trabajo, un volumen de catálogo de Unity o una ubicación de almacenamiento en la nube externa. Consulte dependencias de la biblioteca de conjuntos de recursos de Databricks.

En el ejemplo siguiente se agrega una tarea JAR a un trabajo. La ruta de acceso del archivo JAR es a la ubicación del volumen especificada. (Los puntos suspensivos indican contenido omitido, por brevedad).

# ...
resources:
  jobs:
    my-jar-job:
      name: my-jar-job
      # ...
      tasks:
        - task_key: my-jar-task
          spark_jar_task:
            main_class_name: org.example.com.Main
          libraries:
            - jar: /Volumes/main/default/my-volume/my-project-0.1.0-SNAPSHOT.jar
          # ...
# ...

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > spark_jar_task en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML. Consulte Tarea JAR para trabajos.

Tarea de archivo SQL

Esta tarea se usa para ejecutar un archivo SQL ubicado en un área de trabajo o en un repositorio de Git remoto.

En el ejemplo siguiente se agrega una tarea de archivo SQL a un trabajo. Esta tarea de archivo SQL usa el almacenamiento SQL especificado para ejecutar el archivo SQL especificado. (Los puntos suspensivos indican contenido omitido, por brevedad).

# ...
resources:
  jobs:
    my-sql-file-job:
      name: my-sql-file-job
      # ...
      tasks:
        - task_key: my-sql-file-task
          sql_task:
            file:
              path: /Users/someone@example.com/hello-world.sql
              source: WORKSPACE
            warehouse_id: 1a111111a1111aa1
          # ...
# ...

Para obtener el identificador de un almacén de SQL, abra la página de configuración de SQL warehouse y, a continuación, copie el identificador que se encuentra entre paréntesis después del nombre del almacén en el campo Nombre de la pestaña Información general.

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > sql_task > file en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML. Consulte Tarea SQL para trabajos.

Tarea de canalizaciones de Delta Live Tables

Esta tarea se usa para ejecutar una canalización de Delta Live Tables. Consulte ¿Qué es Delta Live Tables?

En el ejemplo siguiente se agrega una tarea de canalización de Delta Live Tables a un trabajo. Esta tarea de canalización de Delta Live Tables ejecuta la canalización especificada. (Los puntos suspensivos indican contenido omitido, por brevedad).

# ...
resources:
  jobs:
    my-pipeline-job:
      name: my-pipeline-job
      # ...
      tasks:
        - task_key: my-pipeline-task
          pipeline_task:
            pipeline_id: 11111111-1111-1111-1111-111111111111
          # ...
# ...

Para encontrar el identificador de una canalización, abra la canalización en el área de trabajo y copie el valor del identificador de canalización en la pestaña Detalles de canalización de la página de configuración de la canalización.

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > pipeline_task en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML. Consulte Tarea de canalizaciones de Delta Live Tables para trabajos.

tarea dbt

Esta tarea se usa para ejecutar uno o varios comandos dbt. Vea Conexión a dbt Cloud.

En el ejemplo siguiente se agrega una tarea dbt a un trabajo. Esta tarea dbt usa el almacenamiento SQL especificado para ejecutar los comandos dbt especificados.

# ...
resources:
  jobs:
    my-dbt-job:
      name: my-dbt-job
      # ...
      tasks:
        - task_key: my-dbt-task
          dbt_task:
            commands:
              - "dbt deps"
              - "dbt seed"
              - "dbt run"
            project_directory: /Users/someone@example.com/Testing
            warehouse_id: 1a111111a1111aa1
          libraries:
            - pypi:
                package: "dbt-databricks>=1.0.0,<2.0.0"
          # ...
# ...

Para obtener el identificador de un almacén de SQL, abra la página de configuración de SQL warehouse y, a continuación, copie el identificador que se encuentra entre paréntesis después del nombre del almacén en el campo Nombre de la pestaña Información general.

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > dbt_task en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML. Consulte Tarea dbt para trabajos.

Databricks Asset Bundles también incluye una plantilla de proyecto dbt-sql que define un trabajo con una tarea dbt, así como perfiles de dbt para trabajos dbt implementados. Para obtener información sobre las plantillas de Databricks Asset Bundles, consulte Utilizar una plantilla de paquete predeterminada.

Tarea de trabajo de ejecución

Esta tarea se usa para ejecutar otro trabajo.

El ejemplo siguiente contiene una tarea de trabajo de ejecución en el segundo trabajo que ejecuta el primer trabajo.

# ...
resources:
  jobs:
    my-first-job:
      name: my-first-job
      tasks:
        - task_key: my-first-job-task
          new_cluster:
            spark_version: "13.3.x-scala2.12"
            node_type_id: "i3.xlarge"
            num_workers: 2
          notebook_task:
            notebook_path: ./src/test.py
    my_second_job:
      name: my-second-job
      tasks:
        - task_key: my-second-job-task
          run_job_task:
            job_id: ${resources.jobs.my-first-job.id}
  # ...

En este ejemplo, se utiliza una sustitución para recuperar el identificador del trabajo que se va a ejecutar. Para obtener un identificador de trabajo de la interfaz de usuario, abra el trabajo en el área de trabajo y copie el identificador del valor Id. de trabajo en la pestaña Detalles del trabajo de la página de configuración del trabajo.

Para obtener asignaciones adicionales que puede establecer para esta tarea, consulte tasks > run_job_task en la carga de solicitud de la operación de creación del trabajo, tal como se define en POST /api/2.1/jobs/create en la referencia de la API de REST, expresada en formato YAML.