Dela via


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:

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:

  1. I listrutan Typ väljer du För var och en.

  2. Ange ett namn på aktiviteten i fältet Aktivitetsnamn .

  3. 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 namnet generate_countries_list som föregår For 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}}

  4. Om du vill ange antalet iterationer som kan köras parallellt anger du ett samtidighetsvärde för aktiviteten. Standardvärdet är 1.

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

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

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

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

    Lägg till en kapslad uppgift i en För varje uppgift

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

Jobb UI DAG-vyn växlar till För varje uppgift

Jobb UI DAG-vy växlar till kapslad uppgift

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.