Taaktakeninstellingen overschrijven in Databricks Asset Bundles
In dit artikel wordt beschreven hoe u de instellingen voor Azure Databricks-taaktaken in Databricks Asset Bundles overschrijft. Zie Wat zijn Databricks-assetbundels?
In Azure Databricks-bundelconfiguratiebestanden kunt u de task
toewijzing in een taakdefinitie gebruiken om de taaktakeninstellingen toe te voegen aan een toewijzing op het hoogste niveau resources
met de taakinstellingen in een targets
toewijzing, bijvoorbeeld (weglatingstekens geven inhoud aan, kortheid):
# ...
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.
# ...
Als u de toewijzing op het hoogste niveau resources
en de targets
toewijzing voor hetzelfde task
wilt samenvoegen, moeten de task
toewijzingen task_key
worden ingesteld op dezelfde waarde.
Als een taaktaakinstelling is gedefinieerd in zowel de toewijzing op het hoogste niveau als de targets
toewijzing voor hetzelfdetask
, heeft de instelling in de targets
toewijzing voorrang op de instelling in de toewijzing op het hoogste niveauresources
.resources
Voorbeeld 1: Taaktaakinstellingen gedefinieerd in meerdere resourcetoewijzingen en zonder instellingenconflicten
In dit voorbeeld spark_version
wordt in de toewijzing op het hoogste niveau resources
gecombineerd met node_type_id
en num_workers
in de resources
toewijzing targets
om de instellingen voor de task_key
benoemde naam my-task
te definiƫren (weglatingstekens geven de weggelaten inhoud aan voor beknoptheid):
# ...
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
# ...
Wanneer u voor dit voorbeeld uitvoert databricks bundle validate
, ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):
{
"...": "...",
"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"
}
],
"...": "..."
}
}
}
}
Voorbeeld 2: Conflicterende taaktaakinstellingen gedefinieerd in meerdere resourcetoewijzingen
In dit voorbeeld spark_version
num_workers
worden zowel in de toewijzing op het hoogste niveau resources
als in de resources
toewijzing in targets
. spark_version
en num_workers
in de toewijzing in targets
de resources
toewijzing voorrang hebben op spark_version
en num_workers
in de toewijzing op het hoogste niveauresources
. Hiermee definieert u de instellingen voor de task_key
benoemde naam my-task
(weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):
# ...
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
# ...
Wanneer u voor dit voorbeeld uitvoert databricks bundle validate
, ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):
{
"...": "...",
"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"
}
],
"...": "..."
}
}
}
}