Contrôler le flux de tâches dans un job Databricks
Certains travaux sont simplement une liste de tâches qui doivent être effectuées. Vous pouvez contrôler l’ordre d’exécution des tâches en spécifiant des dépendances entre elles. Vous pouvez configurer des tâches à exécuter en séquence ou en parallèle.
Toutefois, vous pouvez également créer des flux de branchement qui incluent des tâches conditionnelles, une correction d’erreur ou un nettoyage. Azure Databricks fournit des fonctionnalités permettant de contrôler le flux de tâches au sein d’un travail. Les rubriques suivantes décrivent les façons dont vous pouvez contrôler le flux de vos tâches.
Nouvelle tentatives
Les nouvelles tentatives spécifient le nombre de fois où une tâche particulière doit être réexécuter si la tâche échoue avec un message d’erreur. Les erreurs sont souvent temporaires et résolues par le redémarrage. Certaines fonctionnalités d’Azure Databricks, telles que l’évolution du schéma avec Structured Streaming, supposent que vous exécutez des travaux avec nouvelles tentatives pour réinitialiser l’environnement et permettre à un flux de travail de continuer.
Si vous spécifiez des nouvelles tentatives pour une tâche, la tâche redémarre jusqu’au nombre de fois spécifié s’il rencontre une erreur. Toutes les configurations de travaux ne prennent pas en charge les réessais de tâches. Consultez le point pour définir une stratégie de nouvelle tentative.
Lors d’une exécution en mode de déclencheur continu, Databricks effectue automatiquement de nouvelles tentatives avec un backoff exponentiel. Consultez Comment les échecs des travaux continus sont-ils traités ?.
Exécuter si des tâches conditionnelles
Vous pouvez utiliser le type de tâche Exécuter si afin de spécifier des éléments conditionnels pour des tâches ultérieures basées sur le résultat d’autres tâches. Vous ajoutez des tâches à votre travail et spécifiez des tâches dépendantes en amont. En fonction de l’état de ces tâches, vous pouvez configurer une ou plusieurs tâches en aval à exécuter. Les tâches prennent en charge les dépendances suivantes :
- Tout a réussi
- Au moins un a réussi
- Aucun échec
- Tout est fait
- Au moins un échec
- Tous ont échoué
Consultez Configurer les dépendances de tâche
Tâches conditionnelles if/else
Vous pouvez utiliser l'If/else type de tâche pour spécifier des conditions en fonction d’une valeur. Consultez pour ajouter une logique de branchement à une tâche avec l'instruction If/else.
Les travaux prennent en charge taskValues
que vous définissez dans votre logique et vous permettent de retourner les résultats d’un calcul ou d’un état de tâche dans l’environnement des travaux. Vous pouvez définir des conditions If/else par rapport à taskValues
, des paramètres de travail ou des valeurs dynamiques.
Azure Databricks prend en charge les opérandes suivants pour les conditions :
==
!=
>
>=
<
<=
Voir aussi :
- Utiliser des valeurs de tâche pour transmettre des informations entre les tâches
- Qu’est-ce qu’une référence de valeur dynamique ?
- Paramétrer les travaux
Pour chaque tâche
Utilisez la tâche For each
pour exécuter une autre tâche dans une boucle, en passant un jeu de paramètres différent à chaque itération de la tâche.
Pour ajouter une tâche For each
à un travail, vous devez définir une 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 Databricks standard. Plusieurs méthodes sont prises en charge pour transmettre des paramètres à la tâche imbriquée.
Consultez Exécuter une tâche de travail Azure Databricks paramétrée dans une boucle.