Sdílet prostřednictvím


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:

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:

  1. V rozevírací nabídce Typ vyberte Pro každý.

  2. Do pole Název úkolu zadejte název úkolu.

  3. 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ázvem generate_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}}.

  4. Pokud chcete volitelně nastavit počet iterací, které se dají spustit paralelně, zadejte hodnotu souběžnosti pro úlohu. Výchozí hodnota je 1.

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

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

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

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

    Přidání vnořeného úkolu do úkolu pro každý úkol

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

Přepnutí zobrazení DAG uživatelského rozhraní úloh na možnost Pro každou úlohu

Přepnutí zobrazení DAG uživatelského rozhraní úloh na vnořenou úlohu

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.