Compartir a través de


Invalidación de la configuración de tareas de trabajo en agrupaciones de recursos de Databricks

En este artículo, se describe cómo invalidar la configuración de las tareas de trabajo de Azure Databricks en agrupaciones de recursos de Databricks. Consulte ¿Qué son las agrupaciones de recursos de Databricks?

En los archivos de configuración de agrupación de Azure Databricks, puede usar la asignación de task dentro de una definición de trabajo para unir la configuración de tareas de trabajo en una asignación de resources de nivel superior con la configuración de la tarea de trabajo en una asignación de targets; por ejemplo, los puntos suspensivos indican contenido omitido, con fines de brevedad:

# ...
resources:
  jobs:
    <some-unique-programmatic-identifier-for-this-job>:
      # ...
      tasks:
        - task_key: <some-unique-programmatic-identifier-for-this-task>
          # Task settings.

targets:
  <some-unique-programmatic-identifier-for-this-target>:
    resources:
      jobs:
        <the-matching-programmatic-identifier-for-this-job>:
          # ...
          tasks:
            - task_key: <the-matching-programmatic-identifier-for-this-key>
              # Any more task settings to join with the settings from the
              # resources mapping for the matching top-level task_key.
          # ...

Para unir la asignación resources de nivel superior y la asignación targets para la misma task, las asignaciones de task (task_key) deben establecerse en el mismo valor.

Si se define cualquier configuración de tarea de trabajo en la asignación de nivel superior resources y la asignación targets para la misma task, la configuración de la asignación targets tiene prioridad sobre la configuración de la asignación de nivel superior resources.

Ejemplo 1: Configuración de tarea de trabajo definida en varias asignaciones de recursos y sin conflictos de configuración

En este ejemplo, spark_version en la asignación de nivel superior resources se combina con node_type_id y num_workers en la asignación resources de targets para definir la configuración de los task_key llamados my-task (los puntos suspensivos indican contenido omitido, por brevedad):

# ...
resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: my-key
          new_cluster:
            spark_version: 13.3.x-scala2.12

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          tasks:
            - task_key: my-task
              new_cluster:
                node_type_id: Standard_DS3_v2
                num_workers: 1
          # ...

Cuando ejecuta databricks bundle validate para este ejemplo, el gráfico resultante es como el que se muestra a continuación (los puntos suspensivos indican contenido omitido, para abreviar):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "tasks": [
          {
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 1,
              "spark_version": "13.3.x-scala2.12"
            },
            "task-key": "my-task"
          }
        ],
        "...": "..."
      }
    }
  }
}

Ejemplo 2: Configuración del clúster de trabajo en conflicto definida en varias asignaciones de recursos

En este ejemplo, spark_version y num_workers se definen en la asignación de nivel superior resources y en la asignación resources en targets. spark_version y num_workers en la asignación resources en targets tienen prioridad sobre spark_version y num_workers en la asignación resources de nivel superior. Esto define la configuración de los task_key puntos suspensivos con nombre my-task (los puntos suspensivos indican contenido omitido, para abreviar):

# ...
resources:
  jobs:
    my-job:
      name: my-job
      tasks:
        - task_key: my-task
          new_cluster:
            spark_version: 13.3.x-scala2.12
            node_type_id: Standard_DS3_v2
            num_workers: 1

targets:
  development:
    resources:
      jobs:
        my-job:
          name: my-job
          tasks:
            - task_key: my-task
              new_cluster:
                spark_version: 12.2.x-scala2.12
                num_workers: 2
          # ...

Cuando ejecuta databricks bundle validate para este ejemplo, el gráfico resultante es como el que se muestra a continuación (los puntos suspensivos indican contenido omitido, para abreviar):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "tasks": [
          {
            "new_cluster": {
              "node_type_id": "Standard_DS3_v2",
              "num_workers": 2,
              "spark_version": "12.2.x-scala2.12"
            },
            "task_key": "my-task"
          }
        ],
        "...": "..."
      }
    }
  }
}