Een geparameteriseerde Azure Databricks-taak uitvoeren in een lus
In dit artikel wordt het gebruik van de For each
taak besproken met uw Azure Databricks-taken, inclusief details over het toevoegen en configureren van de taak in de gebruikersinterface van Taken. Gebruik de For each
taak om een taak in een lus uit te voeren en een andere set parameters door te geven aan elke iteratie van de taak.
Voor het toevoegen van de For each
taak aan een taak moeten twee taken worden gedefinieerd: de For each
taak en een geneste taak. De geneste taak is de taak die moet worden uitgevoerd voor elke iteratie van de For each
taak en is een van de standaardtakentypen van Azure Databricks Jobs. U kunt geen andere For each
taak toevoegen als geneste taak.
U kunt de For each
taak bijvoorbeeld gebruiken om een gemeenschappelijke set transformaties uit te voeren voor meerdere tabellen, waarbij een tabelnaam wordt doorgegeven uit een lijst met tabelnamen voor elke iteratie van de taak.
Welke parametertypen kan ik gebruiken met de For each
taak?
Als u parameters van een For each
taak wilt doorgeven, kunt u het volgende doen:
- Definieer een verzameling met JSON-indeling wanneer u een taak maakt of bewerkt.
- Gebruik taakwaarden die zijn doorgegeven uit een vorige taak. Zie Taakwaarden gebruiken om informatie door te geven tussen taken voor meer informatie over taakwaarden.
- Gebruik taakparameters. Zie Taakparameters configureren voor meer informatie over taakparameters.
Zie de volgende sectie Voor elke taak toevoegen aan een taak voor meer informatie over het gebruik van deze verschillende parametertypen wanneer u een For each
taak toevoegt of bewerkt.
De For each
taak toevoegen aan een taak
U kunt een For each
taak toevoegen wanneer u een taak maakt of een taak in een bestaande taak bewerkt. Een taak configureren For each
:
Selecteer voor elk in het vervolgkeuzemenu Type.
Voer een naam in voor de taak in het veld Taaknaam .
Definieer in het tekstvak Invoer de waarden voor de taak waarop de
For each
taak moet worden herhaald. Dit kan een van de volgende zijn:Een in JSON opgemaakte matrix met waarden. Dit kan een matrix zijn van de volgende gegevenstypen:
- sleutel-waardeparen
- Tekenreeksen, getallen of Booleaanse typen
- Willekeurige complexe JSON-objecten
Verwijzingen naar taakwaarden. Als u wilt verwijzen naar taakwaarden die zijn doorgegeven uit een voorgaande taak, gebruikt u de
{{tasks.<task_name>.values.<task_value_name>}}
syntaxis om de waarde in te stellen in het tekstvak Invoer . Als een taak diegenerate_countries_list
voorafgaat aan deFor each
taak bijvoorbeeld de volgende taakwaarde instelt:dbutils.jobs.taskValues.set(key = "countries", value = countries_array)
Vervolgens verwijst de
For each
taak naar de taakwaarde in het tekstvak Invoer met behulp van de volgende syntaxis:{{tasks.generate_countries_list.values.countries}}
.Taakparameters. Als u naar een taakparameter wilt verwijzen, gebruikt u de volgende syntaxis in het tekstvak Invoer :
{{job.parameters.<name>}}
. Bijvoorbeeld:{{job.parameters.countries}}
.
Als u optioneel het aantal iteraties wilt instellen dat parallel kan worden uitgevoerd, voert u een gelijktijdigheidswaarde voor de taak in. De standaardwaarde is 1.
Als u optioneel meldingen wilt ontvangen voor het starten, slagen of mislukken van taken, klikt u op + Toevoegen. Zie E-mail- en systeemmeldingen toevoegen voor taakevenementen.
Klik op Een taak toevoegen om de configuratie van de
For each
taak te voltooien en een geneste taak toe te voegen die voor elke iteratie moet worden uitgevoerd.Selecteer een taaktype en configuratieopties voor de geneste taak. Geneste taken zijn standaardtaaktypen en hebben dezelfde configuratieopties. Zie Databricks-taken configureren en bewerken.
Als u wilt verwijzen naar parameters die zijn doorgegeven vanuit de
For each
taak, klikt u op Parameters. Gebruik de{{input}}
verwijzing om de waarde in te stellen op de matrixwaarde van elke iteratie of{{input.<key>}}
om te verwijzen naar afzonderlijke objectvelden wanneer u een lijst met objecten doorgeeft.Klik op Taak maken.
Schakelen tussen de For each
taak en de geneste taak
De For each
taak wordt weergegeven in de gebruikersinterface taken als een knooppunt met het geneste taakknooppunt in het For each
knooppunt. Als u wilt schakelen tussen de For each
taak en de geneste taak, klikt u op de respectieve knooppunten.
Verwijzen naar een For each
taak in downstreamtaken
De For each
taak is de taak op het hoogste niveau en downstreamtaken kunnen deze opgeven als een afhankelijkheid. Downstreamtaken kunnen niet afhankelijk zijn van of verwijzen naar de geneste taak.
Een taak uitvoeren en bewaken met een For each
taak
Het uitvoeren van een taak met een For each
taak is identiek aan het uitvoeren van een andere taak.
Het weergeven en beheren van taakuitvoeringen is ook identiek aan elke andere taak, behalve de taakuitvoeringsgeschiedenis voor een For each
taak, die wordt weergegeven als een tabel met taakiteraties. Zie De uitvoeringsgeschiedenis van de taak weergeven voor een voor elke taak.