Megosztás a következőn keresztül:


Tevékenységértékek használata a tevékenységek közötti információátadáshoz

A tevékenységértékek a Databricks Utilities taskValues alutasságára vonatkoznak, amely lehetővé teszi, hogy tetszőleges értékeket adjon át a Databricks-feladatok tevékenységei között. Lásd: taskValues subutility (dbutils.jobs.taskValues).

Egy tevékenységben kulcs-érték párokat dbutils.jobs.taskValues.set() adhat meg, majd a tevékenységnév és a kulcs használatával hivatkozhat az értékre a későbbi tevékenységekben.

Feljegyzés

Az al segédprogramok dbutils.jobs.taskValues.set() és dbutils.jobs.taskValues.get() csak Python-jegyzetfüzetekben érhetők el. A tevékenységértékekre dinamikus értékhivatkozásokkal hivatkozhat minden olyan tevékenységhez, amely támogatja a paramétereket. Lásd: Referenciatevékenység-értékek.

Tevékenységértékek beállítása

Feladatértékek beállítása Python-jegyzetfüzetekben az alhatóság dbutils.jobs.taskValues.set()használatával.

A tevékenység értékkulcsainak sztringeknek kell lenniük. Minden kulcsnak egyedinek kell lennie, ha egy jegyzetfüzetben több tevékenységérték van definiálva.

A feladatértékeket manuálisan vagy programozott módon is hozzárendelheti a kulcsokhoz. Csak érvényes JSON-ként kifejezhető értékek engedélyezettek. Az érték JSON-ábrázolásának mérete nem haladhatja meg a 48 KiB-t.

Az alábbi példa például beállít egy statikus sztringet a kulcshoz fave_food:

dbutils.jobs.taskValues.set(key = "fave_food", value = "beans")

Az alábbi példa egy jegyzetfüzet-tevékenységparaméter használatával kérdezi le egy adott rendelésszám összes rekordját, és visszaadja az aktuális rendelési állapotot és a rekordok teljes számát:

from pyspark.sql.functions import col

order_num = dbutils.widgets.get("order_num")

query = (spark.read.table("orders")
  .orderBy(col("updated"), ascending=False)
  .select(col("order_status"))
  .where(col("order_num") == order_num)
)

dbutils.jobs.taskValues.set(key = "record_count", value = query.count())
dbutils.jobs.taskValues.set(key = "order_status", value = query.take(1)[0][0])

Ezzel a mintával átadhatja az értékek listáját, majd az alsóbb rétegbeli logika koordinálására használhatja őket, például az egyes tevékenységekhez. Lásd: Paraméteres Azure Databricks-feladatfeladat futtatása ciklusban.

Az alábbi példa a termékazonosító különböző értékeit egy Python-listára bontja, és feladatértékként állítja be:

prod_list = list(spark.read.table("products").select("prod_id").distinct().toPandas()["prod_id"])

dbutils.jobs.taskValues.set(key = "prod_list", value = prod_list)

Tevékenységértékek hivatkozása

A Databricks azt javasolja, hogy a tevékenységértékekre a dinamikus érték referenciamintával {{tasks.<task_name>.values.<value_name>}}konfigurált tevékenységparaméterekként hivatkozzon.

Ha például egy nevesített tevékenység kulcsával prod_list szeretne hivatkozni a tevékenység értékére, használja a szintaxist{{tasks.product_inventory.values.prod_list}}.product_inventory

Lásd: Tevékenységparaméterek konfigurálása és Mi a dinamikus értékhivatkozás?

Használja a következő parancsot: dbutils.jobs.taskValues.get

A szintaxishoz dbutils.jobs.taskValues.get() meg kell adni a felsőbb rétegbeli tevékenység nevét. Ez a szintaxis nem ajánlott, mivel több alárendelt tevékenység tevékenységértékeit is használhatja, ami azt jelenti, hogy a tevékenységnév megváltozásakor számos frissítésre van szükség.

Ezzel a szintaxissal megadhat egy értéket és egy default debugValueértéket. Az alapértelmezett érték akkor használatos, ha a kulcs nem található. Ez debugValue lehetővé teszi, hogy a jegyzetfüzetek manuális kódfejlesztése és tesztelése során használandó statikus értéket állítson be, mielőtt feladatként ütemezi a jegyzetfüzetet.

Az alábbi példa a kulcskészlet order_status értékét egy tevékenységnévben order_lookupkapja meg. Az érték Delivered csak a jegyzetfüzet interaktív futtatásakor lesz visszaadva.

order_status = dbutils.jobs.taskValues.get(taskKey = "order_lookup", key = "order_status", debugValue = "Delivered")

Feljegyzés

A Databricks nem javasolja az alapértelmezett értékek beállítását, mivel a hiányzó kulcsok vagy helytelenül elnevezett feladatok miatt nehéz lehet elhárítani és megelőzni a várt hibaüzeneteket.

Tevékenységértékek megtekintése

Az egyes futtatásokhoz tartozó tevékenységérték visszaadott értéke megjelenik a Tevékenységfuttatás részleteinek Kimeneti paneljén. Lásd: Feladatfuttatási előzmények megtekintése.