Control del flujo de tareas dentro de un trabajo de Databricks
Algunos trabajos son simplemente una lista de tareas que deben completarse. Puede controlar el orden de ejecución de las tareas especificando las dependencias entre ellas. Puede configurar tareas para que se ejecuten en secuencia o en paralelo.
Sin embargo, también puede crear flujos de bifurcación que incluyan tareas condicionales, corrección de errores o limpieza. Azure Databricks proporciona funcionalidad para controlar el flujo de tareas dentro de un trabajo. En los temas siguientes se describen las formas en que puede controlar el flujo de las tareas.
Reintentos
Los reintentos especifican cuántas veces se debe volver a ejecutar una tarea determinada si se produce un error en la tarea con un mensaje de error. Los errores suelen ser transitorios y se resuelven mediante el reinicio. Algunas características de Azure Databricks, como la evolución del esquema con Structured Streaming, suponen que ejecuta trabajos con reintentos para restablecer el entorno y permitir que un flujo de trabajo continúe.
Si especifica reintentos para una tarea, la tarea se reinicia hasta el número de veces especificado si se produce un error. No todas las configuraciones de trabajo admiten reintentos de tareas. Consulte Configuración de una política de reintento.
Cuando se ejecuta en modo de desencadenador continuo, Databricks vuelve a intentarlo automáticamente con retroceso exponencial. Consulte ¿Cómo se controlan los errores para trabajos continuos?.
Ejecución de tareas condicionales
Puede usar el tipo de tarea Ejecutar si para especificar condicionales para tareas posteriores en función del resultado de otras tareas. Agregue tareas al trabajo y especifique tareas dependientes del nivel superior. En función del estado de esas tareas, puede configurar una o varias tareas posteriores para que se ejecuten. Los trabajos admiten las siguientes dependencias:
- Todo fue exitoso
- Al menos una tuvo éxito
- Ninguna ha producido errores
- Todo hecho
- Al menos uno falló
- Todo falló
Consulte Configuración de dependencias de tareas
Tareas condicionales If/else
Puede usar el If/else tipo de tarea para especificar condicionales en función de algún valor. Consulte Adición de lógica de bifurcación a un trabajo con la tarea If/else.
Los trabajos admiten taskValues
que define dentro de la lógica y permiten devolver los resultados de algún cálculo o estado de una tarea al entorno de trabajos. Puede definir condiciones If/else contra taskValues
, parámetros de trabajo o valores dinámicos.
Azure Databricks admite los siguientes operandos para los condicionales:
==
!=
>
>=
<
<=
Consulte también:
- Usar valores de tarea para pasar información entre tareas
- ¿Qué es una referencia de valor dinámico?
- Parametrizar trabajos
Para cada tarea
Use la tarea For each
para ejecutar otra tarea en un bucle y pasar un conjunto diferente de parámetros a cada iteración de la tarea.
Para agregar una tarea For each
a un trabajo, primero debe definir una tarea For each
y una tarea anidada. La tarea anidada es la tarea que se ejecuta en cada iteración de la tarea For each
y es uno de los tipos estándar de tareas de Databricks. Se admiten varios métodos para pasar parámetros a la tarea anidada.
Consulte Ejecución de una tarea de trabajo de Azure Databricks con parámetros en un bucle.