Controle o fluxo de tarefas em um Databricks Job
Alguns trabalhos são simplesmente uma lista de tarefas que precisam ser concluídas. O senhor pode controlar a ordem de execução da tarefa especificando as dependências entre elas. O senhor pode configurar a tarefa para execução em sequência ou em paralelo.
No entanto, o senhor também pode criar fluxos de ramificação que incluam tarefa condicional, correção de erros ou limpeza. Databricks fornece funcionalidade para controlar o fluxo de tarefas em um trabalho. Os tópicos a seguir descrevem maneiras de controlar o fluxo de sua tarefa.
Tentativas novamente
As tentativas especificam quantas vezes uma determinada tarefa deve ser reexecutada se a tarefa falhar com uma mensagem de erro. Os erros geralmente são transitórios e resolvidos por meio da reinicialização. Alguns recursos do site Databricks, como a evolução do esquema com transmissão estruturada, pressupõem que o senhor execute o Job com novas tentativas para redefinir o ambiente e permitir que um fluxo de trabalho prossiga.
Se o senhor especificar novas tentativas para uma tarefa, ela será reiniciada até o número de vezes especificado se encontrar um erro. Nem todas as configurações de trabalho suportam novas tentativas de tarefa. Consulte Definir uma política de novas tentativas.
Ao executar no modo de disparo contínuo, o Databricks tenta novamente de forma automática com backoff exponencial. Consulte Como as falhas são tratadas no trabalho contínuo?
execução se tarefa condicional
O senhor pode usar o tipo de tarefa executar se para especificar condicionais para tarefas posteriores com base no resultado de outras tarefas. O senhor adiciona tarefa ao seu Job e especifica tarefa dependente de upstream. Com base no status dessas tarefas, o senhor pode configurar uma ou mais tarefas downstream para execução. Os trabalhos suportam as seguintes dependências:
Tudo foi bem-sucedido
Pelo menos um bem-sucedido
Não houve falha
Tudo pronto
Pelo menos uma falha
Tudo falhou
Consulte Configurar dependências da tarefa
Tarefa condicional if/else
O senhor pode usar o tipo de tarefa If/else para especificar condicionais com base em algum valor. Consulte Adicionar lógica de ramificação a um trabalho com a tarefa If/else.
Os trabalhos suportam taskValues
que o senhor define em sua lógica e permitem retornar os resultados de algum cálculo ou estado de uma tarefa para o ambiente do trabalho. O senhor pode definir condições If/else em relação a taskValues
, parâmetros de trabalho ou valores dinâmicos.
O Databricks suporta os seguintes operandos para condicionais:
==
!=
>
>=
<
<=
Veja também:
Para cada tarefa
Use a tarefa For each
para executar outra tarefa em um loop, passando um conjunto diferente de parâmetros a cada iteração da tarefa.
Para adicionar uma tarefa For each
a um trabalho, o senhor 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 site Databricks. Há suporte para vários métodos para passar parâmetros para a tarefa aninhada.
Ver execução a parameterized Databricks Job tarefa in a loop.