Executar uma tarefa de trabalho parametrizada do Azure Databricks em um loop
Este artigo discute o uso da For each
tarefa com seus trabalhos do Azure Databricks, incluindo detalhes sobre como adicionar e configurar a tarefa na interface do usuário de Trabalhos. Use a For each
tarefa para executar uma tarefa em um loop, passando um conjunto diferente de parâmetros para cada iteração da tarefa.
Adicionar a For each
tarefa a um trabalho requer a definição de duas tarefas: A For each
tarefa e uma tarefa aninhada. A tarefa aninhada é a tarefa a ser executada para cada iteração da For each
tarefa e é um dos tipos de tarefa padrão do Azure Databricks Jobs. Não é possível adicionar outra For each
tarefa como tarefa aninhada.
Por exemplo, você pode usar a For each
tarefa 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 For each
tarefa?
Para passar parâmetros de uma For each
tarefa, você pode:
- Defina uma coleção formatada em JSON ao criar ou editar uma tarefa.
- Use valores de tarefa passados de uma tarefa anterior. Para saber mais sobre valores de tarefas, consulte Usar valores de tarefa para passar informações entre tarefas.
- Use parâmetros de trabalho. Para saber mais sobre parâmetros de trabalho, consulte Configurar parâmetros de trabalho.
Para saber como usar esses diferentes tipos de parâmetros ao adicionar ou editar uma For each
tarefa, consulte a próxima seção Adicionar o Para cada tarefa a um trabalho.
Adicionar a For each
tarefa a um trabalho
Você pode adicionar uma For each
tarefa ao criar um trabalho ou editar uma tarefa em um trabalho existente. Para configurar uma For each
tarefa:
No menu suspenso Tipo, selecione Para cada um.
Insira um nome para a tarefa no campo Nome da tarefa .
Na caixa de texto Entradas, defina os valores para a
For each
tarefa ser iterada. Pode ser uma das seguintes opções:Uma matriz de valores formatada em JSON. Esta pode ser uma matriz dos seguintes tipos de dados:
- Pares chave-valor
- Strings, números ou tipos booleanos
- Objetos JSON arbitrariamente complexos
Referências de valor de tarefa. Para fazer referência a valores de tarefa passados de uma tarefa anterior, use a
{{tasks.<task_name>.values.<task_value_name>}}
sintaxe para definir o valor na caixa de texto Entradas . Por exemplo, se uma tarefa nomeadagenerate_countries_list
que precede aFor each
tarefa define o seguinte valor de tarefa:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
Em seguida, a
For each
tarefa faz referência ao valor da tarefa na caixa de texto Entradas usando a seguinte sintaxe:{{tasks.generate_countries_list.values.countries}}
.Parâmetros do trabalho. Para fazer referência a um parâmetro de trabalho, use a seguinte sintaxe na caixa de texto 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 simultaneidade para a tarefa. O valor predefinido é 1.
Opcionalmente, para receber notificações sobre início, êxito ou falha da tarefa, clique em + Adicionar. Consulte Adicionar notificações por e-mail e do sistema para eventos de trabalho.
Para concluir a
For each
configuração da tarefa e adicionar uma tarefa aninhada a ser executada para cada iteração, clique em Adicionar uma tarefa para loopover.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 tarefas do Databricks.
Para fazer referência a parâmetros passados da
For each
tarefa, clique em Parâmetros. Use a{{input}}
referência para definir o valor para o valor da matriz de cada iteração ou{{input.<key>}}
para fazer referência a campos de objeto individuais quando iterar sobre uma lista de objetos.Clique em Criar tarefa.
Alternar entre a For each
tarefa e a tarefa aninhada
A For each
tarefa aparece na interface do usuário Trabalhos como um nó com o nó de tarefa aninhado dentro do For each
nó. Para alternar entre a For each
tarefa e a tarefa aninhada, clique nos respetivos nós.
Referenciar uma For each
tarefa em tarefas a jusante
A For each
tarefa é a tarefa de nível superior e as tarefas a jusante podem especificá-la como uma dependência. As tarefas a jusante não podem depender ou fazer referência à tarefa aninhada.
Executar e monitorar um trabalho com uma For each
tarefa
Executar um trabalho com uma For each
tarefa é idêntico a executar qualquer outro trabalho.
A visualização e o gerenciamento de execuções de tarefas também são idênticos a qualquer outro trabalho, exceto o histórico de execução de tarefas de uma For each
tarefa, que é apresentado como uma tabela de iterações de tarefas. Consulte Ver histórico de execução de tarefas para um Para cada tarefa.