Ejecución de una tarea parametrizada de trabajo de Azure Databricks en bucle
En este artículo se describe el uso de la tarea For each
con los trabajos de Azure Databricks, incluidos detalles sobre cómo agregar y configurar la tarea en la interfaz de usuario de trabajos. Use la tarea For each
para ejecutar una tarea en bucle, pasando un conjunto diferente de parámetros a cada iteración de la tarea.
Agregar la tarea For each
a un trabajo requiere definir dos tareas: la tarea For each
y una tarea anidada. La tarea anidada es la tarea que se va a ejecutar para cada iteración de la tarea For each
y es uno de los tipos de tareas de trabajos de Azure Databricks estándar. No puede agregar otra tarea For each
como tarea anidada.
Por ejemplo, podría usar la tarea For each
para realizar un conjunto común de transformaciones en varias tablas, pasando un nombre de tabla de una lista de nombres de tabla a cada iteración de la tarea.
¿Qué tipos de parámetros puedo usar con la tarea For each
?
Para pasar parámetros desde una tarea For each
, puede hacer lo siguiente:
- Defina una colección en formato JSON al crear o editar una tarea.
- Use valores de tarea pasados desde una tarea anterior. Para obtener más información sobre los valores de tarea, consulte Use task values to pass information between tasks (Uso de valores de tarea para pasar información entre tareas).
- Uso de parámetros de trabajo. Para obtener más información sobre los parámetros de trabajo, consulte Configure job parameters (Configuración de parámetros del trabajo).
Para obtener información sobre cómo usar estos tipos de parámetros diferentes al agregar o editar una tarea For each
, consulte la siguiente sección, Add the For each task to a job (Agregar area Para cada uno a un trabajo).
Agregar la tarea For each
a un trabajo
Agregue una tarea For each
al crear un trabajo o editar una tarea de un trabajo existente. Para configurar una tarea For each
:
En el menú desplegable Tipo, seleccione Para cada uno.
Escriba un nombre para la tarea en el campo Nombre de la tarea.
En el cuadro de texto Entradas, defina los valores de la tarea
For each
sobre los que se va a iterar. Este puede ser uno de los siguientes:Matriz con formato JSON de valores. Puede ser una matriz de los siguientes tipos de datos:
- pares clave-valor
- Cadenas, números o tipos booleanos
- Objetos JSON arbitrariamente complejos
Referencias de valor de tarea. Para hacer referencia a los valores de tarea pasados desde una tarea anterior, use la sintaxis
{{tasks.<task_name>.values.<task_value_name>}}
para establecer el valor en el cuadro de texto Entradas. Por ejemplo, si una tarea denominadagenerate_countries_list
que precede a la tareaFor each
establece el siguiente valor de tarea:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
Entonces, la tarea
For each
hace referencia al valor de la tarea en el cuadro de texto Entradas mediante la siguiente sintaxis:{{tasks.generate_countries_list.values.countries}}
.Parámetros del trabajo. Para hacer referencia a un parámetro de trabajo, use la siguiente sintaxis en el cuadro de texto Entradas:
{{job.parameters.<name>}}
. Por ejemplo,{{job.parameters.countries}}
.
Para establecer opcionalmente el número de iteraciones que se pueden ejecutar en paralelo, escriba un valor de simultaneidad para la tarea. El valor predeterminado es 1.
Si desea recibir notificaciones del inicio, el éxito o el error de la tarea, haga clic en + Agregar. Consulte Adición de notificaciones por correo electrónico y sistema para eventos de trabajo.
Para completar la configuración de la tarea
For each
y agregar una tarea anidada para que se ejecute con cada iteración, haga clic en Agregar una tarea para ejecutarla en bucle.Seleccione un tipo de tarea y opciones de configuración para la tarea anidada. Las tareas anidadas son tipos de tareas estándar y tienen las mismas opciones de configuración. Consulte Configuración y edición de tareas de Databricks.
Para hacer referencia a los parámetros pasados desde la tarea
For each
, haga clic en Parámetros. Utilice la referencia{{input}}
para establecer el valor en el valor de la matriz de cada iteración o{{input.<key>}}
para hacer referencia a campos de objeto individuales al iterar sobre una lista de objetos.Haga clic en Create task (Crear tarea).
Cambiar entre la tarea For each
y la tarea anidada
La tarea For each
aparece en la interfaz de usuario de trabajos como un nodo con el nodo de tarea anidada dentro del nodo For each
. Para cambiar entre la tarea For each
y la tarea anidada, haga clic en los nodos respectivos.
Hacer referencia a una tarea For each
en tareas de bajada
La tarea For each
es la tarea de nivel superior y las tareas de nivel inferior pueden especificarla como una dependencia. Las tareas de bajada no pueden depender de la tarea anidada ni hacer referencia a ella.
Ejecución y supervisión de un trabajo con una tarea For each
Ejecutar un trabajo con una tarea For each
es idéntico a ejecutar cualquier otro trabajo.
La visualización y administración de ejecuciones de trabajos también es idéntica a cualquier otro trabajo, excepto el historial de ejecución de tareas de una tarea For each
, que se presenta como una tabla de iteraciones de tareas. Consulte Visualización del historial de ejecución de tareas para una tarea “Para cada uno”.