Pular para o conteúdo principal

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):

YAML
# ...
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):

YAML
# ...
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):

JSON
{
"...": "...",
"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):

YAML
# ...
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):

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