Remplacer les paramètres des tâches de travail dans les packs de ressources Databricks
Cet article décrit le remplacement des paramètres des tâches de travail Azure Databricks dans les packs de ressources Databricks. Consultez Que sont les packs de ressources Databricks ?
Dans les fichiers de paramètres de pack Azure Databricks, vous pouvez utiliser le mappage task
dans une définition de tâche pour joindre les paramètres des tâches de travail d’un mappage resources
de niveau supérieur avec les paramètres des tâches de travail d’un mappage targets
, par exemple (les points de suspension indiquent du contenu omis, par souci de concision) :
# ...
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.
# ...
Pour joindre le mappage de niveau resources
supérieur et le targets
mappage pour le même task
, les task
mappages task_key
doivent être définis sur la même valeur.
Si un paramètre d’une tâche de travail est défini à la fois dans le mappage resources
de niveau supérieur et le mappage targets
pour le même task
, le paramètre du mappage targets
est prioritaire sur celui du mappage resources
de niveau supérieur.
Exemple 1 : paramètres des tâches de travail définis dans plusieurs mappages de ressources et sans conflit de paramètres
Dans cet exemple, spark_version
dans le mappage resources
de niveau supérieur est combiné avec node_type_id
et num_workers
dans le mappage resources
de targets
pour définir les paramètres de task_key
nommé my-task
(les points de suspension indiquent du contenu omis, par souci de concision) :
# ...
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
# ...
Lorsque vous exécutez databricks bundle validate
pour cet exemple, le graphique résultant est le suivant (les points de suspension indiquent du contenu omis, par souci de concision) :
{
"...": "...",
"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"
}
],
"...": "..."
}
}
}
}
Exemple 2 : paramètres des tâches de travail en conflit définis dans plusieurs mappages de ressources
Dans cet exemple, spark_version
et num_workers
sont définis à la fois dans le mappage resources
de niveau supérieur ainsi que dans le mappage resources
dans targets
. spark_version
et num_workers
dans le mappage resources
en targets
priorité spark_version
et num_workers
dans le mappage de niveau resources
supérieur. Cela définit les paramètres du task_key
nommé my-task
(les points de suspension indiquent le contenu omis, à des fins de concision) :
# ...
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
# ...
Lorsque vous exécutez databricks bundle validate
pour cet exemple, le graphique résultant est le suivant (les points de suspension indiquent du contenu omis, par souci de concision) :
{
"...": "...",
"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"
}
],
"...": "..."
}
}
}
}