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"
}
],
"...": "..."
}
}
}
}