Köra en parameteriserad Azure Databricks-jobbaktivitet i en loop
I den For each
här artikeln beskrivs hur du använder uppgiften med dina Azure Databricks-jobb, inklusive information om hur du lägger till och konfigurerar uppgiften i jobbgränssnittet. Använd uppgiften For each
för att köra en aktivitet i en loop och skicka en annan uppsättning parametrar till varje iteration av aktiviteten.
För att lägga till uppgiften i For each
ett jobb måste du definiera två aktiviteter: Uppgiften For each
och en kapslad uppgift. Den kapslade aktiviteten är den uppgift som ska köras för varje iteration av For each
aktiviteten och är en av standardaktivitetstyperna för Azure Databricks-jobb. Du kan inte lägga till en annan For each
uppgift som den kapslade aktiviteten.
Du kan till exempel använda For each
uppgiften för att utföra en gemensam uppsättning transformeringar i flera tabeller och skicka ett tabellnamn från en lista med tabellnamn till varje iteration av uppgiften.
Vilka parametertyper kan jag använda med For each
uppgiften?
Om du vill skicka parametrar från en For each
uppgift kan du:
- Definiera en JSON-formaterad samling när du skapar eller redigerar en uppgift.
- Använd aktivitetsvärden som skickats från en föregående aktivitet. Mer information om aktivitetsvärden finns i Använda aktivitetsvärden för att skicka information mellan aktiviteter.
- Använd jobbparametrar. Mer information om jobbparametrar finns i Konfigurera jobbparametrar.
Mer information om hur du använder dessa olika parametertyper när du lägger till eller redigerar en For each
uppgift finns i nästa avsnitt Lägg till för varje aktivitet i ett jobb.
Lägga till uppgiften i For each
ett jobb
Du kan lägga till en For each
aktivitet när du skapar ett jobb eller redigerar en aktivitet i ett befintligt jobb. Så här konfigurerar du en For each
uppgift:
I listrutan Typ väljer du För var och en.
Ange ett namn på aktiviteten i fältet Aktivitetsnamn .
I textrutan Indata definierar du värdena för aktiviteten som ska
For each
iterera på. Detta kan vara något av följande:En JSON-formaterad matris med värden. Detta kan vara en matris med följande datatyper:
- nyckel/värde-par
- Strängar, tal eller booleska typer
- Godtyckligt komplexa JSON-objekt
Referenser till aktivitetsvärde. Om du vill referera till aktivitetsvärden som skickats från en föregående aktivitet använder du syntaxen
{{tasks.<task_name>.values.<task_value_name>}}
för att ange värdet i textrutan Indata. Om till exempel en aktivitet med namnetgenerate_countries_list
som föregårFor each
aktiviteten anger följande aktivitetsvärde:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
For each
Aktiviteten refererar sedan till aktivitetsvärdet i textrutan Indata med hjälp av följande syntax:{{tasks.generate_countries_list.values.countries}}
.Jobbparametrar. Om du vill referera till en jobbparameter använder du följande syntax i textrutan Indata :
{{job.parameters.<name>}}
. Exempel:{{job.parameters.countries}}
Om du vill ange antalet iterationer som kan köras parallellt anger du ett samtidighetsvärde för aktiviteten. Standardvärdet är 1.
Om du vill ta emot meddelanden om aktivitetsstart, lyckad aktivitet eller fel klickar du på + Lägg till. Se Lägga till e-post- och systemaviseringar för jobbhändelser.
Om du vill slutföra konfigurationen
For each
av uppgiften och lägga till en kapslad uppgift som ska köras för varje iteration klickar du på Lägg till en aktivitet som ska loopas över.Välj en aktivitetstyp och konfigurationsalternativ för den kapslade aktiviteten. Kapslade uppgifter är standardaktivitetstyper och har samma konfigurationsalternativ. Se Konfigurera och redigera Databricks-uppgifter.
Om du vill referera till parametrar som skickats
For each
från aktiviteten klickar du på Parametrar. Använd referensen{{input}}
för att ange värdet till matrisvärdet för varje iteration eller{{input.<key>}}
för att referera till enskilda objektfält när du itererar över en lista med objekt.Klicka på Skapa uppgift.
Växla mellan uppgiften For each
och den kapslade aktiviteten
Uppgiften For each
visas i användargränssnittet för jobb som en nod med den kapslade aktivitetsnoden For each
i noden. Om du vill växla mellan uppgiften For each
och den kapslade aktiviteten klickar du på respektive nod.
Referera till en For each
aktivitet i underordnade aktiviteter
Uppgiften For each
är den översta aktiviteten och underordnade aktiviteter kan ange den som ett beroende. Underordnade aktiviteter kan inte vara beroende av eller referera till den kapslade aktiviteten.
Köra och övervaka ett jobb med en For each
uppgift
Att köra ett jobb med en For each
uppgift är identiskt med att köra andra jobb.
Visning och hantering av jobbkörningar är också identiskt med andra jobb, förutom aktivitetskörningshistoriken för en For each
aktivitet, som visas som en tabell med uppgifts-iterationer. Se Visa aktivitetskörningshistorik för en För varje aktivitet.