execução de uma tarefa parametrizada do Databricks Job em um loop
Este artigo discute o uso da tarefa For each
com o trabalho Databricks, incluindo detalhes sobre como adicionar e configurar a tarefa na interface do usuário do trabalho. Use a tarefa For each
para executar uma tarefa em um loop, passando um conjunto diferente de parâmetros a cada iteração da tarefa.
Para adicionar a tarefa For each
a um trabalho, é necessário definir duas tarefas: A tarefa For each
e uma tarefa aninhada. A tarefa aninhada é a tarefa a ser executada para cada iteração da tarefa For each
e é um dos tipos de tarefa padrão do Databricks Jobs. O senhor não pode adicionar outra tarefa For each
como tarefa aninhada.
Por exemplo, o senhor poderia usar a tarefa For each
para executar um conjunto comum de transformações em várias tabelas, passando um nome de tabela de uma lista de nomes de tabela para cada iteração da tarefa.
Que tipos de parâmetros posso usar com a tarefa For each
?
Para passar parâmetros de uma tarefa For each
, o senhor pode:
Defina uma coleção formatada em JSON quando o senhor criar ou editar uma tarefa.
Usar valores de tarefa passados de uma tarefa anterior. Para saber mais sobre os valores de tarefa, consulte Usar valores de tarefa para passar informações entre tarefas.
Use os parâmetros do trabalho. Para saber mais sobre os parâmetros do trabalho, consulte Configurar parâmetros do trabalho.
Para saber como usar esses diferentes tipos de parâmetros ao adicionar ou editar uma tarefa For each
, consulte a próxima seção Adicionar a tarefa Para cada tarefa a um trabalho.
Adicionar a tarefa For each
a um trabalho
O senhor pode adicionar uma tarefa For each
ao criar um trabalho ou editar uma tarefa em um trabalho existente. Para configurar uma tarefa For each
:
No menu suspenso Tipo, selecione Para cada um.
Insira um nome para a tarefa no campo Nome da tarefa.
Na caixa de texto Inputs (Entradas), defina os valores para a tarefa
For each
a ser iterada. Isso pode ser um dos seguintes:Uma matriz de valores formatada em JSON. Isso pode ser uma matriz dos seguintes tipos de dados:
par key-value
strings, números ou Boolean types
Objetos JSON arbitrariamente complexos
referências de valores de tarefa. Para fazer referência aos valores de tarefa passados de uma tarefa anterior, use a sintaxe
{{tasks.<task_name>.values.<task_value_name>}}
para definir o valor na caixa de texto Inputs (Entradas). Por exemplo, se uma tarefa chamadagenerate_countries_list
que precede a tarefaFor each
define o seguinte valor de tarefa:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
Em seguida, a tarefa
For each
faz referência ao valor da tarefa na caixa de texto Inputs usando a seguinte sintaxe:{{tasks.generate_countries_list.values.countries}}
.Job parâmetros. Para fazer referência a um parâmetro de trabalho, use a seguinte sintaxe na caixa de texto Inputs (Entradas):
{{job.parameters.<name>}}
. Por exemplo,{{job.parameters.countries}}
.
Para definir opcionalmente o número de iterações que podem ser executadas em paralelo, insira um valor de Concurrency para a tarefa. O valor de default é 1.
Para receber notificações opcionais sobre a tarefa começar, sucesso ou falha, clique em + Add (Adicionar). Consulte Adicionar email e notificações de sistema para eventos de trabalho.
Para concluir a configuração da tarefa
For each
e adicionar uma tarefa aninhada para execução em cada iteração, clique em Add a tarefa to loop over.Selecione um tipo de tarefa e opções de configuração para a tarefa aninhada. As tarefas aninhadas são tipos de tarefas padrão e têm as mesmas opções de configuração. Consulte Configurar e editar Databricks tarefa.
Para fazer referência aos parâmetros passados da tarefa
For each
, clique em Parameters (Parâmetros). Use a referência{{input}}
para definir o valor como o valor da matriz de cada iteração ou{{input.<key>}}
para referenciar campos de objetos individuais ao iterar em uma lista de objetos.Clique em Criar tarefa.
Alternar entre a tarefa For each
e a tarefa aninhada
A tarefa For each
aparece na UI de Jobs como um nó com o nó de tarefa aninhado dentro do nó For each
. Para alternar entre a tarefa For each
e a tarefa aninhada, clique nos respectivos nós.
Referência a uma tarefa For each
na tarefa downstream
A tarefa For each
é a tarefa de nível superior, e a tarefa downstream pode especificá-la como uma dependência. A tarefa downstream não pode depender ou fazer referência à tarefa aninhada.
executar e monitorar um Job com uma tarefa For each
Executar um trabalho com uma tarefa For each
é idêntico a executar qualquer outro trabalho.
A visualização e o gerenciamento da execução do trabalho também são idênticos aos de qualquer outro trabalho, exceto o histórico de execução da tarefa para uma tarefa For each
, que é apresentado como uma tabela de iterações de tarefa. Veja a história da execução da tarefa para cada tarefa.