Controlar o fluxo de tarefas numa tarefa Databricks
Alguns trabalhos são simplesmente uma lista de tarefas que precisam ser concluídas. Você pode controlar a ordem de execução das tarefas especificando dependências entre elas. Você pode configurar tarefas para serem executadas em sequência ou em paralelo.
No entanto, você também pode criar fluxos de ramificação que incluem tarefas condicionais, correção de erros ou limpeza. O Azure Databricks fornece funcionalidade para controlar o fluxo de tarefas dentro de um trabalho. Os tópicos a seguir descrevem maneiras de controlar o fluxo de suas tarefas.
Tentativas
As novas tentativas especificam quantas vezes uma determinada tarefa deve ser executada novamente se a tarefa falhar com uma mensagem de erro. Os erros são muitas vezes transitórios e resolvidos através do reinício. Alguns recursos no Azure Databricks, como a evolução do esquema com o Structured Streaming, pressupõem que você execute trabalhos com novas tentativas para redefinir o ambiente e permitir que um fluxo de trabalho continue.
Se você especificar novas tentativas para uma tarefa, a tarefa será reiniciada até o número especificado de vezes se encontrar um erro. Nem todas as configurações de trabalho suportam repetições de tarefas. Consulte Definir uma política de repetição.
Quando está a funcionar no modo de gatilho contínuo, o Databricks tenta automaticamente novamente com um atraso crescente. Consulte Como as falhas são tratadas para trabalhos contínuos?.
Executar tarefas condicionais se
Você pode usar o Executar caso tipo de tarefa para especificar condicionais para tarefas posteriores com base no resultado de outras tarefas. Você adiciona tarefas ao seu trabalho e especifica tarefas dependentes do upstream. Com base no status dessas tarefas, você pode configurar uma ou mais tarefas downstream para serem executadas. Os empregos suportam as seguintes dependências:
- Todos tiveram sucesso
- Pelo menos um conseguiu
- Nenhum falhou
- Tudo feito
- Pelo menos um falhou
- Tudo falhou
Consulte Configurar dependências de tarefas
Tarefas condicionais Se/senão
Você pode usar o tipo de tarefa If/else para especificar condicionais com base em algum valor. Veja : Adicionar lógica de ramificação a um trabalho com a tarefa If/else.
Os trabalhos suportam taskValues
que você define em sua lógica e permitem que você retorne os resultados de algum cálculo ou estado de uma tarefa para o ambiente de trabalhos. Você pode definir condições If/else em relação a taskValues
, parâmetros de trabalho ou valores dinâmicos.
O Azure Databricks dá suporte aos seguintes operandos para condicionais:
==
!=
>
>=
<
<=
Ver também:
- Usar valores de tarefa para passar informações entre tarefas
- O que é uma referência de valor dinâmico?
- Parametrizar tarefas
Para cada tarefa
Use a tarefa For each
para executar outra tarefa em um loop, passando um conjunto diferente de parâmetros para cada iteração da tarefa.
Para adicionar uma tarefa For each
a um trabalho, você deve definir uma 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. Vários métodos são disponibilizados para passar parâmetros à tarefa aninhada.
Veja executar uma tarefa parametrizada do Azure Databricks em um loop.