Substituir as configurações de tarefa de trabalho em Databricks ativo Bundles
Este artigo descreve como substituir as configurações de Databricks Job tarefa em Databricks ativo Bundles. Veja o que são Databricks ativo Bundles?
Nos Databricks arquivos de configuração do pacote, o senhor pode usar o task
mapeamento em uma definição de trabalho para join as configurações de tarefa de trabalho em um mapeamento de nível superior resources
com as configurações de tarefa de trabalho em um targets
mapeamento, por exemplo (as reticências indicam conteúdo omitido, para fins de brevidade):
# ...
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 join o mapeamento resources
de nível superior e o mapeamento targets
para o mesmo task
, o task_key
dos mapeamentos task
deve ser definido com o mesmo valor.
Se qualquer configuração de tarefa de trabalho for definida no mapeamento de nível superior resources
e no mapeamento targets
para o mesmo task
, a configuração no mapeamento targets
terá precedência sobre a configuração no mapeamento de nível superior resources
.
Exemplo 1: Job configurações de tarefa definidas em vários mapeamentos de recurso e sem conflitos de configurações
Neste exemplo, spark_version
no mapeamento resources
de nível superior é combinado com node_type_id
e num_workers
no mapeamento resources
em targets
para definir as configurações do task_key
chamado my-task
(as elipses indicam conteúdo omitido, por motivos de brevidade):
# ...
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: n2-highmem-4
num_workers: 1
# ...
Quando o senhor executa databricks bundle validate
para este exemplo, o gráfico resultante é o seguinte (as elipses indicam conteúdo omitido, para fins de brevidade):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"tasks": [
{
"new_cluster": {
"node_type_id": "n2-highmem-4",
"num_workers": 1,
"spark_version": "13.3.x-scala2.12"
},
"task-key": "my-task"
}
],
"...": "..."
}
}
}
}
Exemplo 2: Configurações de tarefa conflitantes definidas em vários mapeamentos de recurso
Neste exemplo, spark_version
e num_workers
são definidos no mapeamento resources
de nível superior e no mapeamento resources
em targets
. spark_version
e num_workers
no mapeamento resources
em targets
têm precedência sobre spark_version
e num_workers
no mapeamento resources
de nível superior. Isso define as configurações para o task_key
chamado my-task
(elipses indicam conteúdo omitido, para resumir):
# ...
resources:
jobs:
my-job:
name: my-job
tasks:
- task_key: my-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: n2-highmem-4
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
# ...
Quando o senhor executa databricks bundle validate
para este exemplo, o gráfico resultante é o seguinte (as elipses indicam conteúdo omitido, para fins de brevidade):
{
"...": "...",
"resources": {
"jobs": {
"my-job": {
"tasks": [
{
"new_cluster": {
"node_type_id": "n2-highmem-4",
"num_workers": 2,
"spark_version": "12.2.x-scala2.12"
},
"task_key": "my-task"
}
],
"...": "..."
}
}
}
}