Információk megosztása egy Azure Databricks-feladat tevékenységei között
A tevékenységértékekkel tetszőleges paramétereket adhat át egy Azure Databricks-feladat tevékenységei között. Feladatértékeket a Databricks Utilities taskValues alutility elemével ad át. A taskValues subutility egy egyszerű API-t biztosít, amely lehetővé teszi a tevékenységek számára a későbbi tevékenységekben hivatkozható értékek kimenetét, így egyszerűbbé válik a kifejezőbb munkafolyamatok létrehozása. Az azonosítókat és metrikákat, például egy gépi tanulási modell kiértékelési adatait kommunikálhatja a feladatfuttatás különböző tevékenységei között. Minden tevékenység több tevékenységértéket is beállíthat és lekérhet. A tevékenységértékek Python-jegyzetfüzetekben állíthatók be és kérhetők le.
Megjegyzés:
Mostantól a jegyzetfüzetekben dinamikus értékhivatkozásokkal hivatkozhat a felsőbb rétegbeli tevékenységekben beállított tevékenységértékekre. Ha például a tevékenység Get_user_data
által beállított kulccsal name
szeretne hivatkozni az értékre, használja a következőt{{tasks.Get_user_data.values.name}}
: Mivel több tevékenységtípussal is használhatók, a Databricks ahelyett, hogy programozott módon szeretné lekérni a tevékenység értékét, dinamikus értékhivatkozásokat dbutils.jobs.taskValues.get
javasol.
Tevékenységértékek használata
A taskValues subutility két parancsot biztosít: dbutils.jobs.taskValues.set()
egy változó beállítását és dbutils.jobs.taskValues.get()
egy érték lekérését. Tegyük fel, hogy két jegyzetfüzetfeladata van: Get_user_data
és Analyze_user_data
át szeretné adni egy felhasználó nevét és életkorát a Get_user_data
feladatból a Analyze_user_data
tevékenységnek. Az alábbi példa a felhasználó nevét és életkorát állítja be a Get_user_data
feladatban:
dbutils.jobs.taskValues.set(key = 'name', value = 'Some User')
dbutils.jobs.taskValues.set(key = "age", value = 30)
key
a tevékenység értékkulcsának neve. Ennek a névnek egyedinek kell lennie a tevékenységhez.value
a tevékenységérték kulcsának értéke. Ennek a parancsnak képesnek kell lennie az érték belső JSON formátumban való megjelenítésére. Az érték JSON-ábrázolásának mérete nem haladhatja meg a 48 KiB-t.
Az alábbi példa ezután lekéri a tevékenység értékeit Analyze_user_data
:
dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "age", default = 42, debugValue = 0)
dbutils.jobs.taskValues.get(taskKey = "Get_user_data", key = "name", default = "Jane Doe")
taskKey
az értéket megállító feladatfeladat neve. Ha a parancs nem találja ezt a feladatot, megjelenik egyValueError
.key
a tevékenységérték kulcsának neve. Ha a parancs nem találja ennek a tevékenységértéknek a kulcsát, a rendszer felvesz egyValueError
értéket (hacsak nincsdefault
megadva).default
egy nem kötelező érték, amely akkor lesz visszaadva, hakey
nem található.default
nem lehetNone
.debugValue
nem kötelező érték, amelyet akkor ad vissza a rendszer, ha egy feladaton kívül futó jegyzetfüzetből próbálja lekérni a feladat értékét. Ez akkor lehet hasznos a hibakeresés során, ha manuálisan szeretné futtatni a jegyzetfüzetet, és az alapértelmezett érték növeléseTypeError
helyett valamilyen értéket ad vissza.debugValue
nem lehetNone
.
Tegyük fel, hogy egy összetettebb példa a tevékenységek közötti megosztásra, tegyük fel, hogy egy olyan alkalmazással rendelkezik, amely több gépi tanulási modellt tartalmaz az egyén jövedelmének előrejelzéséhez különböző személyes attribútumok alapján, valamint egy olyan feladat, amely az előző három tevékenység kimenete alapján határozza meg a legjobban használható modellt. A modelleket három, nevesített Logistic_Regression
tevékenység futtatja, Decision_Tree
és Random_Forest
a Best_Model
tevékenység az előző három tevékenység kimenete alapján határozza meg a legjobban használni kívánt modellt.
Az egyes modellek pontossága (hogy az osztályozó milyen jól előrejelzi a bevételt) egy tevékenységértékben van átadva a legjobban teljesítő algoritmus meghatározásához. A feladathoz Logistic_Regression
társított logisztikai regressziós jegyzetfüzet például a következő parancsot tartalmazza:
dbutils.jobs.taskValues.set(key = "model_performance", value = result)
Minden modellfeladat beállít egy értéket a model_performance
kulcshoz. A Best_Model
tevékenység beolvassa az egyes tevékenységek értékét, és ezt az értéket használja az optimális modell meghatározásához. Az alábbi példa beolvassa a tevékenység által Logistic_Regression
beállított értéket:
logistic_regression = dbutils.jobs.taskValues.get(taskKey = "Logistic_Regression", key = "model_performance")
Tevékenységértékek megtekintése
Ha meg szeretné tekinteni egy tevékenységérték értékét egy tevékenység futtatása után, nyissa meg a tevékenység tevékenységfuttatási előzményeit . A tevékenység értékének eredményei a Kimenet panelen jelennek meg.