Exécuter une tâche de travail Azure Databricks paramétrée dans une boucle
Cet article décrit l’utilisation de la tâche For each
avec vos travaux Azure Databricks, notamment des détails sur l’ajout et la configuration de la tâche dans l’interface utilisateur des travaux. Utilisez la tâche For each
pour exécuter une tâche dans une boucle, en transférant un ensemble différent de paramètres à chaque itération de la tâche.
L’ajout de la tâche For each
à un travail nécessite la définition de deux tâches : la tâche For each
et une tâche imbriquée. La tâche imbriquée est la tâche à exécuter pour chaque itération de la tâche For each
et est l’un des types de tâches de travaux Azure Databricks standard. Vous ne pouvez pas ajouter une autre tâche For each
en tant que tâche imbriquée.
Par exemple, vous pouvez utiliser la tâche For each
pour effectuer un ensemble commun de transformations sur plusieurs tables, en transférant un nom de table d’une liste de noms de tables à chaque itération de la tâche.
Quels types de paramètres puis-je utiliser avec la tâche For each
?
Pour transférer des paramètres à partir d’une tâche For each
, vous pouvez :
- Définissez une collection au format JSON lorsque vous créez ou modifiez une tâche.
- Utilisez les valeurs de tâche transférées à partir d’une tâche précédente. Pour en savoir plus sur les valeurs de tâches, consultez Utiliser les valeurs de tâches pour transférer des informations entre les tâches.
- Utilisez des paramètres de travail. Pour en savoir plus sur les paramètres de projet, consultez Configuration des paramètres de projet.
Pour savoir comment utiliser ces différents types de paramètres lorsque vous ajoutez ou modifiez une tâche For each
, consultez la section suivante Ajouter la tâche Pour chaque à un travail.
Ajouter la tâche For each
à un travail
Vous pouvez ajouter une tâche For each
lorsque vous créez un projet ou modifiez une tâche dans un projet existant. Pour configurer une tâche For each
:
Dans le menu déroulant Type, sélectionnez Pour chaque.
Dans le champ Nom de la tâche, entrez un nom pour la tâche.
Dans la zone de texte Entrées, définissez les valeurs de la tâche
For each
sur laquelle effectuer une itération. Il peut s'agir de l'une des ressources suivantes :Tableau de valeurs au format JSON. Il peut s’agir d’un tableau des types de données suivants :
- Paires clé-valeur
- Chaînes, nombres ou types booléens
- Objets JSON arbitrairement complexes
Références de valeur de tâche. Pour référencer les valeurs de tâche transférées à partir d’une tâche précédente, utilisez la syntaxe
{{tasks.<task_name>.values.<task_value_name>}}
pour définir la valeur dans la zone de texte Entrées. Par exemple, si une tâche nomméegenerate_countries_list
qui précède la tâcheFor each
définit la valeur de tâche suivante :dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
La tâche
For each
fait ensuite référence à la valeur de la tâche dans la zone de texte Entrées à l’aide de la syntaxe suivante :{{tasks.generate_countries_list.values.countries}}
.Paramètres de travail. Pour référencer un paramètre de travail, utilisez la syntaxe suivante dans la zone de texte Entrées :
{{job.parameters.<name>}}
. Par exemple :{{job.parameters.countries}}
.
Pour définir éventuellement le nombre d’itérations qui peuvent s’exécuter en parallèle, saisissez une valeur d’accès concurrentiel pour la tâche. La valeur par défaut est 1.
Pour éventuellement recevoir des notifications en cas de démarrage, de réussite ou d’échec de la tâche, cliquez sur + Ajouter. Consultez Ajouter des notifications par e-mail et système pour les événements de travail.
Pour terminer la configuration de la tâche
For each
et ajouter une tâche imbriquée à exécuter pour chaque itération, cliquez sur Ajouter une tâche pour effectuer une boucle.Sélectionnez un type de tâche et des options de configuration pour la tâche imbriquée. Les tâches imbriquées sont des types de tâches standard et ont les mêmes options de configuration. Consultez Configurer et modifier des tâches Databricks.
Pour référencer les paramètres transmis à partir de la tâche
For each
, cliquez sur Paramètres. Utilisez la référence{{input}}
pour définir la valeur du tableau de chaque itération ou{{input.<key>}}
pour référencer des champs d’objet individuels lorsque vous effectuez une itération sur une liste d’objets.Cliquez sur Create task.
Basculer entre la tâche For each
et la tâche imbriquée
La tâche For each
apparaît dans l’interface utilisateur des travaux en tant que nœud avec le nœud de tâche imbriquée à l’intérieur du nœud For each
. Pour basculer entre la tâche For each
et la tâche imbriquée, cliquez sur les nœuds respectifs.
Référencer une tâche For each
dans les tâches en aval
La tâche For each
est la tâche de niveau supérieur et les tâches en aval peuvent la spécifier en tant que dépendance. Les tâches en aval ne peuvent pas dépendre ou référencer la tâche imbriquée.
Exécuter et surveiller un travail avec une tâche For each
L’exécution d’un travail avec une tâche For each
est identique à l’exécution d’un autre travail.
L’affichage et la gestion des exécutions de travaux sont également identiques à n’importe quel autre travail, à l’exception de l’historique des exécutions de tâche pour une tâche For each
, qui est présenté sous la forme d’un tableau des itérations de tâches. Consultez Afficher l’historique des exécutions de tâche pour une tâche Pour chaque.