Compartilhar via


Executar uma tarefa de trabalho do Azure Databricks parametrizada em um loop

Este artigo discute o uso da tarefa For each com seus trabalhos do Azure Databricks, incluindo detalhes sobre como adicionar e configurar a tarefa na interface do usuário de trabalhos. Use a tarefa For each para executar uma tarefa em um loop passando um conjunto diferente de parâmetros para cada iteração da tarefa.

Adicionar a tarefa For each a um trabalho requer a definição de 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 de Trabalhos do Azure Databricks. Não é possível adicionar outra tarefa For each como a tarefa aninhada.

Por exemplo, você pode 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, você pode:

Para saber como usar esses diferentes tipos de parâmetro ao adicionar ou editar uma tarefa For each, consulte a próxima seção Adicionar a tarefa Para cada a um trabalho.

Adicionar a tarefa For each a um trabalho

Você pode adicionar uma tarefa For each ao criar um trabalho ou editar uma tarefa em um trabalho existente. Para configurar uma tarefa For each:

  1. No menu suspenso Tipo, selecione Para cada.

  2. Insira um nome para a tarefa no campo Nome da tarefa.

  3. Na caixa de texto Entradas, defina os valores para a tarefa For each a ser iterada. Pode ser um dos seguintes:

    • Uma matriz de valores formatada em JSON. Essa pode ser uma matriz dos seguintes tipos de dados:

      • Pares chave-valor
      • Sequências, números ou tipos booleanos
      • Objetos JSON arbitrariamente complexos
    • Referências a valores de tarefas. Para fazer referência a 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 Entradas. Por exemplo, se uma tarefa chamada generate_countries_list que precede a tarefa For each definir 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 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}}.

  4. 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 padrão é 1.

  5. Para receber opcionalmente notificações para início de tarefa, êxito ou falha, clique em + Adicionar. Confira Adicionar notificações de email e sistema para eventos de trabalho.

  6. Para concluir a configuração da tarefa For each e adicionar uma tarefa aninhada a ser executada para cada iteração, clique em Adicionar uma tarefa para fazer um loop.

  7. 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. Confira Configurar e editar tarefas do Databricks.

  8. Para fazer referência a parâmetros passados da tarefa For each, clique em Parâmetros. Use a referência {{input}} para definir o valor para o valor da matriz de cada iteração ou {{input.<key>}} para fazer referência a campos de objetos individuais ao iterar em uma lista de objetos.

    Adicionar uma tarefa aninhada a uma tarefa Para cada

  9. Clique em Criar tarefa.

Alternar entre a tarefa For each e a tarefa aninhada

A tarefa For eachaparece na interface do usuário de trabalhos 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.

Alternar exibição do DAG da interface do usuário de trabalhos para a tarefa Para cada

Alternar exibição do DAG da interface do usuário de trabalhos para a tarefa aninhada

Fazer referência a uma tarefa For each em tarefas downstream

A tarefa For each é a tarefa de nível superior e as tarefas downstream podem especificá-la como uma dependência. As tarefas downstream não podem depender ou fazer referência à tarefa aninhada.

Executar e monitorar um trabalho com uma tarefa For each

Executar um trabalho com uma tarefa For each é idêntico a executar qualquer outro trabalho.

A exibição e o gerenciamento de execuções de trabalho também são idênticos a qualquer outro trabalho, exceto o histórico de execução de tarefas para uma tarefa For each, que é apresentado como uma tabela de iterações de tarefas. Consulte Exibir o histórico de execução de uma tarefa Para cada.