Spuštění parametrizované úlohy Azure Databricks ve smyčce
Tento článek popisuje použití For each
úlohy s úlohami Azure Databricks, včetně podrobností o přidání a konfiguraci úlohy v uživatelském rozhraní úloh. For each
Pomocí úlohy můžete spustit úlohu ve smyčce a předat do každé iterace úlohy jinou sadu parametrů.
For each
Přidání úkolu do úlohy vyžaduje definování dvou úkolů: For each
úkol a vnořený úkol. Vnořená úloha je úloha, která se má spustit pro každou iteraci For each
úlohy a je jedním ze standardních typů úloh Azure Databricks. Jako vnořený úkol nelze přidat další For each
úkol.
Úlohu můžete například použít For each
k provádění společné sady transformací ve více tabulkách a předání názvu tabulky ze seznamu názvů tabulek každé iteraci úlohy.
Jaké typy parametrů můžu s úkolem For each
použít?
Pokud chcete předat parametry z For each
úkolu, můžete:
- Definujte kolekci ve formátu JSON při vytváření nebo úpravě úkolu.
- Použijte hodnoty úkolů předané z předchozího úkolu. Další informace o hodnotách úkolů najdete v tématu Použití hodnot úkolů k předávání informací mezi úkoly.
- Použijte parametry úlohy. Další informace o parametrech úlohy najdete v tématu Konfigurace parametrů úlohy.
Informace o použití těchto různých typů parametrů při přidání nebo úpravě For each
úkolu najdete v další části Přidání jednotlivých úkolů do úlohy.
For each
Přidání úkolu do úlohy
Úkol můžete přidat For each
při vytváření úlohy nebo úpravě úkolu v existující úloze. For each
Konfigurace úlohy:
V rozevírací nabídce Typ vyberte Pro každý.
Do pole Název úkolu zadejte název úkolu.
V textovém poli Vstupy definujte hodnoty úkolu
For each
, které se mají iterovat. Může to být jedna z následujících možností:Pole hodnot ve formátu JSON. Může se jednat o pole následujících datových typů:
- Páry klíč-hodnota
- Řetězce, čísla nebo logické typy
- Libovolně složité objekty JSON
Odkazy na hodnoty úkolu Chcete-li odkazovat na hodnoty úkolů předané z předchozího úkolu, použijte
{{tasks.<task_name>.values.<task_value_name>}}
syntaxi k nastavení hodnoty v textovém poli Vstupy . Pokud například úkol s názvemgenerate_countries_list
, který předcházíFor each
úkolu, nastaví následující hodnotu úkolu:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
For each
Úloha pak odkazuje na hodnotu úkolu v textovém poli Vstupy pomocí následující syntaxe:{{tasks.generate_countries_list.values.countries}}
.Parametry úlohy. Chcete-li odkazovat na parametr úlohy, použijte následující syntaxi v textovém poli Vstupy :
{{job.parameters.<name>}}
. Například{{job.parameters.countries}}
.
Pokud chcete volitelně nastavit počet iterací, které se dají spustit paralelně, zadejte hodnotu souběžnosti pro úlohu. Výchozí hodnota je 1.
Pokud chcete volitelně dostávat oznámení o zahájení, úspěchu nebo neúspěchu úkolu, klikněte na + Přidat. Viz Přidání e-mailových a systémových oznámení pro události úloh.
Pokud chcete dokončit konfiguraci
For each
úlohy a přidat vnořenou úlohu, která se má spustit pro každou iteraci, klikněte na přidat úlohu, která se má opakovat.Vyberte typ úlohy a možnosti konfigurace pro vnořenou úlohu. Vnořené úlohy jsou standardní typy úloh a mají stejné možnosti konfigurace. Viz Konfigurace a úprava úloh Databricks.
Chcete-li odkazovat na parametry předané z
For each
úlohy, klepněte na tlačítko Parametry.{{input}}
Pomocí odkazu můžete nastavit hodnotu na maticovou hodnotu každé iterace nebo{{input.<key>}}
odkazovat na jednotlivá pole objektů při iteraci seznamu objektů.Klikněte na Vytvořit úkol.
Přepínání mezi For each
úkolem a vnořeným úkolem
Úkol For each
se zobrazí v uživatelském rozhraní úloh jako uzel s vnořeným uzlem úkolu uvnitř For each
uzlu. Pokud chcete přepnout mezi For each
úkolem a vnořeným úkolem, klikněte na příslušné uzly.
Odkaz na For each
úkol v podřízených úkolech
Úkol For each
je úkol nejvyšší úrovně a podřízené úkoly ho můžou určit jako závislost. Podřízené úkoly nemohou záviset na vnořeném úkolu ani na něm odkazovat.
Spuštění a monitorování úlohy pomocí For each
úkolu
Spuštění úlohy s For each
úkolem je stejné jako spuštění jakékoli jiné úlohy.
Zobrazení a správa spuštění úloh je také totožné s jakoukoli jinou úlohou For each
, s výjimkou historie spuštění úkolu, která se zobrazuje jako tabulka iterací úkolů. Viz Zobrazení historie spuštění úlohy pro jednotlivé úlohy.