Partager via


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 :

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 :

  1. Dans le menu déroulant Type, sélectionnez Pour chaque.

  2. Dans le champ Nom de la tâche, entrez un nom pour la tâche.

  3. 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ée generate_countries_list qui précède la tâche For 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}}.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

    Ajouter une tâche imbriquée à une tâche Pour chaque

  9. Cliquez sur Create task.

Basculer entre la tâche For eachet 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.

Commutateur d’affichage DAG de l’interface utilisateur des travaux vers la tâche Pour chaque

Commutateur d’affichage DAG de l’interface utilisateur des travaux vers la tâche imbriquée

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.