Compartir vía


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:

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.