Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Hodnoty úkolů odkazují na subutilitu nástrojů taskValues Databricks, která umožňuje předávat libovolné hodnoty mezi úkoly v úloze Databricks. Viz dílčí nástroj taskValues (dbutils.jobs.taskValues).
V jednom úkolu zadáte pár dbutils.jobs.taskValues.set() klíč-hodnota a pak můžete použít název a klíč úkolu k odkazování na hodnotu v následujících úkolech.
Poznámka:
Vzhledem k tomu, že dbutils.jobs.taskValues.set() a dbutils.jobs.taskValues.get() v dbutils.jobs.taskValues subutilitě jsou funkce Pythonu, je možné je použít pouze v poznámkových blocích s Pythonem vybraným jako jazyk. Můžete ale odkazovat na hodnoty úkolů pomocí odkazů na dynamické hodnoty pro všechny úkoly, které podporují parametry. Viz Referenční hodnoty úkolů.
Nastavení hodnot úkolů
Nastavte hodnoty úkolů v poznámkových blocích Pythonu pomocí dbutils.jobs.taskValues.set().
Klíče hodnot úkolů musí být řetězce. Každý klíč musí být jedinečný, pokud máte v poznámkovém bloku definovaných více hodnot úkolů.
Hodnoty úkolů můžete přiřadit ke klíčům ručně nebo programově. Jsou povoleny pouze hodnoty, které lze vyjádřit jako platný json. Velikost reprezentace JSON hodnoty nesmí překročit 48 KiB.
Například následující příklad nastaví statický řetězec pro klíč fave_food:
dbutils.jobs.taskValues.set(key = "fave_food", value = "beans")
Následující příklad používá parametr úlohy poznámkového bloku k dotazování všech aktualizačních záznamů pro konkrétní rezervaci a vrací aktuální stav rezervace a celkový počet záznamů:
from pyspark.sql.functions import col
dbutils.widgets.text("booking_id", "51567", "Booking ID")
booking_id = dbutils.widgets.get("booking_id")
query = (spark.read.table("samples.wanderbricks.booking_updates")
.orderBy(col("updated_at"), ascending=False)
.where(col("booking_id") == booking_id)
.select(col("status"))
)
dbutils.jobs.taskValues.set(key = "record_count", value = query.count())
dbutils.jobs.taskValues.set(key = "booking_status", value = query.take(1)[0][0])
Pomocí tohoto vzoru můžete předat seznamy hodnot a pak je použít ke koordinaci podřízené logiky, například pro jednotlivé úkoly. Viz Použijte For each úlohu ke spuštění jiné úlohy ve smyčce.
Následující příklad extrahuje různé hodnoty ID cíle do seznamu v Python a nastavuje to jako hodnotu úlohy:
dest_list = list(spark.read.table("samples.wanderbricks.properties").select("destination_id").distinct().toPandas()["destination_id"])
dbutils.jobs.taskValues.set(key = "dest_list", value = dest_list)
Referenční hodnoty úkolů
Databricks doporučuje odkazovat na hodnoty úloh prostřednictvím parametrů úloh nakonfigurovaných pomocí vzoru odkazu na dynamické hodnoty {{tasks.<task_name>.values.<value_name>}}.
Pokud například chcete odkazovat na hodnotu úkolu s klíčem dest_list z pojmenovaného destination_lookupúkolu, použijte syntaxi {{tasks.destination_lookup.values.dest_list}}.
Viz Konfigurace parametrů úkolu a odkazů na dynamické hodnoty.
Použijte dbutils.jobs.taskValues.get
Syntaxe dbutils.jobs.taskValues.get() vyžaduje zadání názvu nadřazeného úkolu. Tato syntaxe se nedoporučuje, protože můžete použít hodnoty úkolů ve více podřízených úkolech, což znamená, že pokud se změní název úkolu, je potřeba provést řadu aktualizací.
Pomocí této syntaxe můžete volitelně zadat hodnotu default a debugValue. Výchozí hodnota se použije v případě, že klíč nebyl nalezen.
debugValue umožňuje nastavit statickou hodnotu, která se použije při ručním vývoji kódu a jeho testování v noteboocích předtím, než notebook naplánujete jako úlohu.
Následující příklad získá hodnotu klíče booking_status nastaveného v názvu booking_lookupúkolu . Hodnota confirmed se vrátí pouze při interaktivním spuštění poznámkového bloku.
booking_status = dbutils.jobs.taskValues.get(taskKey = "booking_lookup", key = "booking_status", debugValue = "confirmed")
Poznámka:
Databricks nedoporučuje nastavit výchozí hodnoty, protože může být náročné řešit potíže a zabránit očekávaným chybným zprávám kvůli chybějícím klíčům nebo nesprávně pojmenovaných úlohám.
Zobrazení hodnot úkolů
Vrácená hodnota hodnoty úlohy pro každé spuštění se zobrazí v podokně Výstuppodrobností o spuštění úlohy. Viz Zobrazení historie spuštění úlohy.