Remplacer les paramètres de cluster dans les bundles de ressources Databricks
Cet article décrit le remplacement des paramètres des clusters Azure Databricks dans les packs de ressources Databricks. Consultez Que sont les packs de ressources Databricks ?
Dans les fichiers de configuration groupés Azure Databricks , vous pouvez joindre les paramètres du cluster dans un mappage au niveau supérieur resources
avec les paramètres du cluster dans un mappage targets
, de la manière suivante.
Pour les tâches, utilisez le mappage job_cluster_key
au sein d’une définition de tâche pour joindre les paramètres du cluster dans un mappage de niveau supérieur resources
avec les paramètres du cluster dans un mappage targets
, par exemple (les points de suspension indiquent le contenu omis, pour plus de concision) :
# ...
resources:
jobs:
<some-unique-programmatic-identifier-for-this-job>:
# ...
job_clusters:
- job_cluster_key: <some-unique-programmatic-identifier-for-this-key>
new_cluster:
# Cluster settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
jobs:
<the-matching-programmatic-identifier-for-this-job>:
# ...
job_clusters:
- job_cluster_key: <the-matching-programmatic-identifier-for-this-key>
# Any more cluster settings to join with the settings from the
# resources mapping for the matching top-level job_cluster_key.
# ...
Si un paramètre de cluster est défini à la fois dans le mappage resources
de niveau supérieur et le mappage targets
pour le même job_cluster_key
, le paramètre du mappage targets
est prioritaire sur le paramètre du mappage de niveau supérieur resources
.
Pour les pipelines Delta Live Tables, utilisez le mappage label
au sein de la cluster
d'une définition de pipeline pour associer les paramètres de cluster d'un mappage resources
de niveau supérieur avec ceux d'un mappage targets
, par exemple (les points de suspension indiquent le contenu omis pour plus de concision) :
# ...
resources:
pipelines:
<some-unique-programmatic-identifier-for-this-pipeline>:
# ...
clusters:
- label: default | maintenance
# Cluster settings.
targets:
<some-unique-programmatic-identifier-for-this-target>:
resources:
pipelines:
<the-matching-programmatic-identifier-for-this-pipeline>:
# ...
clusters:
- label: default | maintenance
# Any more cluster settings to join with the settings from the
# resources mapping for the matching top-level label.
# ...
Si un paramètre de cluster est défini à la fois dans le mappage resources
de niveau supérieur et le mappage targets
pour le même label
, le paramètre du mappage targets
est prioritaire sur le paramètre du mappage de niveau supérieur resources
.
Exemple 1 : Nouveaux paramètres de cluster de travail définis dans plusieurs mappages de ressources et sans conflit de paramètres
Dans cet exemple, spark_version
dans le mappage de resources
de niveau supérieur est combiné avec node_type_id
et num_workers
dans le mappage resources
dans targets
pour définir les paramètres de la job_cluster_key
nommée my-cluster
(les points de suspension indiquent le contenu omis, à des fins de concision) :
# ...
resources:
jobs:
my-job:
name: my-job
job_clusters:
- job_cluster_key: my-cluster
new_cluster:
spark_version: 13.3.x-scala2.12
targets:
development:
resources:
jobs:
my-job:
name: my-job
job_clusters:
- job_cluster_key: my-cluster
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 le contenu omis, pour la concision) :
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"job_clusters": [
{
"job_cluster_key": "my-cluster",
"new_cluster": {
"node_type_id": "Standard_DS3_v2",
"num_workers": 1,
"spark_version": "13.3.x-scala2.12"
}
}
],
"...": "..."
}
}
}
}
Exemple 2 : Conflits de nouveaux paramètres de cluster de travail définis dans plusieurs mappages de ressources
Dans cet exemple, spark_version
et num_workers
sont définis à la fois dans le mappage de resources
de niveau supérieur et dans le mappage resources
dans targets
. Dans cet exemple, spark_version
et num_workers
dans le mappage de resources
dans targets
sont prioritaires sur spark_version
et les num_workers
dans le mappage de resources
de niveau supérieur, pour définir les paramètres du job_cluster_key
nommé my-cluster
(les points de suspension indiquent le contenu omis, à des fins de concision) :
# ...
resources:
jobs:
my-job:
name: my-job
job_clusters:
- job_cluster_key: my-cluster
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
job_clusters:
- job_cluster_key: my-cluster
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 le contenu omis, pour la concision) :
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"job_clusters": [
{
"job_cluster_key": "my-cluster",
"new_cluster": {
"node_type_id": "Standard_DS3_v2",
"num_workers": 2,
"spark_version": "12.2.x-scala2.12"
}
}
],
"...": "..."
}
}
}
}
Exemple 3 : Paramètres de cluster de pipeline définis dans plusieurs mappages de ressources et sans conflit de paramètres
Dans cet exemple, node_type_id
dans le mappage de niveau supérieur resources
est combiné avec num_workers
dans le mappage resources
dans targets
pour définir les paramètres du label
nommé default
(les points de suspension indiquent le contenu omis, pour la concision) :
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: Standard_DS3_v2
targets:
development:
resources:
pipelines:
my-pipeline:
clusters:
- label: default
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 le contenu omis, pour la concision) :
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 1
}
],
"...": "..."
}
}
}
}
Exemple 4 : Paramètres de cluster de pipeline en conflit définis dans plusieurs mappages de ressources
Dans cet exemple, num_workers
est définie à la fois dans le mappage resources
de niveau supérieur et dans le mappage resources
dans targets
. num_workers
dans le mappage de resources
dans targets
prennent précédence sur num_workers
dans le mappage de resources
de niveau supérieur, afin de définir les paramètres du label
nommé default
(les points de suspension indiquent le contenu omis, à des fins de concision) :
# ...
resources:
pipelines:
my-pipeline:
clusters:
- label: default
node_type_id: Standard_DS3_v2
num_workers: 1
targets:
development:
resources:
pipelines:
my-pipeline:
clusters:
- label: default
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 le contenu omis, pour la concision) :
{
"...": "...",
"resources": {
"pipelines": {
"my-pipeline": {
"clusters": [
{
"label": "default",
"node_type_id": "Standard_DS3_v2",
"num_workers": 2
}
],
"...": "..."
}
}
}
}