Ausführen einer parametrisierten Azure Databricks-Auftragsaufgabe in einer Schleife
In diesem Artikel wird die Verwendung der For each
-Aufgabe mit Ihren Azure Databricks-Jobs erläutert, einschließlich Details zum Hinzufügen und Konfigurieren der Aufgabe in der Job-Benutzeroberfläche. Verwenden Sie die For each
-Aufgabe, um eine Aufgabe in einer Schleife auszuführen, und dabei einen anderen Satz von Parametern an jede Iteration der Aufgabe übergeben.
Zum Hinzufügen der Aufgabe For each
zu einem Auftrag müssen zwei Aufgaben definiert werden: Die For each
-Aufgabe und eine geschachtelte Aufgabe. Die geschachtelte Aufgabe ist die Aufgabe, die für jede Iteration der For each
-Aufgabe ausgeführt werden soll, und ist einer der standardmäßigen Azure Databricks Jobs-Aufgabentypen. Sie können keine weitere For each
-Aufgabe als geschachtelte Aufgabe hinzufügen.
Sie können z. B. die For each
-Aufgabe verwenden, um eine gemeinsame Gruppe von Transformationen für mehrere Tabellen auszuführen und einen Tabellennamen aus einer Liste von Tabellennamen an jede Iteration der Aufgabe zu übergeben.
Welche Parametertypen kann ich mit der For each
-Aufgabe verwenden?
Zum Übergeben von Parametern aus einer For each
-Aufgabe können Sie folgende Aktionen ausführen:
- Definieren Sie eine JSON-formatierte Sammlung, wenn Sie eine Aufgabe erstellen oder bearbeiten.
- Verwenden Sie Aufgabenwerte, die von einer vorherigen Aufgabe übergeben wurden. Weitere Informationen zu Aufgabenwerten finden Sie unter Verwenden von Aufgabenwerten zur Weitergabe von Informationen zwischen Aufgaben.
- Verwenden Sie Job-Parameter. Weitere Informationen zu Job-Parametern finden Sie unter Konfigurieren von Auftragsparametern.
Informationen zum Verwenden dieser verschiedenen Parametertypen beim Hinzufügen oder Bearbeiten einer For each
-Aufgabe finden Sie im nächsten Abschnitt Hinzufügen der einzelnen Aufgaben zu einem Job.
Fügen Sie einem Job die For each
-Aufgabe hinzu
Sie können eine For each
-Aufgabe hinzufügen, wenn Sie einen Auftrag erstellen oder eine Aufgabe in einem vorhandenen Auftrag bearbeiten. So konfigurieren Sie eine For each
-Aufgabe:
Wählen Sie im Dropdownmenü Typ die Option Für jede aus.
Geben Sie im Feld Aufgabenname einen Namen für die Aufgabe ein.
Definieren Sie im Textfeld Eingaben die Werte, für die die
For each
-Aufgabe durchlaufen werden soll. Folgende Möglichkeiten stehen zur Auswahl:Eine JSON-formatierte Matrix von Werten. Dies kann eine Matrix der folgenden Datentypen sein:
- Schlüssel-Werte-Paare
- Zeichenfolgen, Zahlen oder boolesche Typen
- Beliebig komplexe JSON-Objekte
Aufgabenwertverweise. Um von einer vorherigen Aufgabe übergebene Vorgangswerte zu referenzieren, verwenden Sie die
{{tasks.<task_name>.values.<task_value_name>}}
- Syntax, um den Wert im Textfeld Eingaben festzulegen. Wenn beispielsweise eine Aufgabe mit dem Namengenerate_countries_list
, die derFor each
-Aufgabe vorausgeht, den folgenden Aufgabenwert festlegt:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
Anschließend verweist die
For each
-Aufgabe auf den Aufgabenwert im Textfeld Eingabe mit der folgenden Syntax:{{tasks.generate_countries_list.values.countries}}
.Auftragsparameter. Verwenden Sie zum Verweisen auf einen Job-Parameter die folgende Syntax im Textfeld Eingaben:
{{job.parameters.<name>}}
. Beispiel:{{job.parameters.countries}}
.
Um optional die Anzahl der Iterationen festzulegen, die parallel ausgeführt werden können, geben Sie einen Parallelitätswert für die Aufgabe ein. Der Standardwert ist 1.
Klicken Sie auf + Hinzufügen, um optional Benachrichtigungen für Start, Erfolg oder Fehler der Aufgabe zu erhalten. Weitere Informationen finden Sie unter Hinzufügen von E-Mail- und Systembenachrichtigungen für Auftragsereignisse.
Um die Konfiguration der
For each
-Aufgabe abzuschließen und eine geschachtelte Aufgabe hinzuzufügen, die für jede Iteration ausgeführt werden soll, klicken Sie auf Eine Aufgabe hinzufügen, um eine Schleife zu durchlaufen.Wählen Sie einen Aufgabentyp und Konfigurationsoptionen für die geschachtelte Aufgabe aus. Geschachtelte Aufgaben sind Standardaufgabentypen und verfügen über die gleichen Konfigurationsoptionen. Siehe Konfigurieren und Bearbeiten von Databricks-Aufgaben.
Klicken Sie auf Parameter, um von der
For each
-Aufgabe übergebene Parameter zu referenzieren. Verwenden Sie den{{input}}
-Verweis, um den Wert auf den Matrixwert jeder Iteration festzulegen oder{{input.<key>}}
, um auf einzelne Objektfelder zu verweisen, wenn Sie eine Liste von Objekten durchlaufen.Klicken Sie auf Aufgabe erstellen.
Wechseln zwischen der For each
-Aufgabe und der geschachtelten Aufgabe
Die For each
-Aufgabe wird in der Job-Benutzeroberfläche als Knoten mit dem geschachtelten Aufgabenknoten innerhalb des For each
-Knotens angezeigt. Um zwischen der For each
-Aufgabe und der geschachtelten Aufgabe zu wechseln, klicken Sie auf die entsprechenden Knoten.
Verweisen auf eine For each
-Aufgabe in nachgelagerten Aufgaben
Die For each
-Aufgabe ist die Aufgabe auf oberster Ebene, und nachgeschaltete Aufgaben können sie als Abhängigkeit angeben. Nachgeschaltete Aufgaben können nicht von der geschachtelten Aufgabe abhängen oder darauf verweisen.
Ausführen und Überwachen eines Jobs mit einer For each
-Aufgabe
Das Ausführen eines Jobs mit einer For each
-Aufgabe ist identisch mit dem Ausführen eines anderen Jobs.
Das Anzeigen und Verwalten von Job-Ausführungen ist auch mit jedem anderen Job identisch, mit Ausnahme des Aufgabenausführungsverlaufs für eine For each
-Aufgabe, die als Tabelle mit Aufgabeniterationen dargestellt wird. Siehe Ansicht des Aufgabenausführungsverlaufs für jede Aufgabe.