Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I valori dei task si riferiscono alla sottoutilibilità taskValues delle utilità di Databricks, che consente di passare valori arbitrari tra i task in un processo di Databricks. Vedere sottoutilità taskValues (dbutils.jobs.taskValues)..
Specificare una coppia chiave-valore usando dbutils.jobs.taskValues.set() in un task e quindi usare il nome e la chiave del task per fare riferimento al valore nei task successivi.
Nota
Poiché dbutils.jobs.taskValues.set() e dbutils.jobs.taskValues.get() nella sottoutilizza dbutils.jobs.taskValues sono funzioni Python, possono essere usate solo nei notebook con Python selezionato come linguaggio. È tuttavia possibile fare riferimento ai valori delle attività usando riferimenti a valori dinamici per tutte le attività che supportano i parametri. Vedi Valori dell'attività di riferimento.
Imposta i valori dell'attività
Definire i valori dei task nei notebook Python usando dbutils.jobs.taskValues.set().
Le chiavi dei valori del task devono essere stringhe. Ogni chiave deve essere univoca se sono stati definiti più valori di task in un notebook.
È possibile assegnare manualmente o a livello di codice i valori dei task alle chiavi. Sono consentiti solo valori che possono essere espressi come JSON validi. Le dimensioni della rappresentazione JSON del valore non possono superare i 48 KiB.
Nell'esempio seguente, ad esempio, viene impostata una stringa statica per la chiave fave_food:
dbutils.jobs.taskValues.set(key = "fave_food", value = "beans")
Il seguente esempio utilizza un parametro di compito del notebook per interrogare tutti i record di aggiornamento di una determinata prenotazione e restituire lo stato attuale della prenotazione e il conteggio totale dei record:
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])
È possibile passare elenchi di valori usando questo criterio e usarli quindi per coordinare la logica downstream, ad esempio per ogni task. Vedi Usare un'attività For each per eseguire ripetutamente un'altra attività.
Il seguente esempio estrae i valori distinti per l'ID della destinazione in una lista Python e imposta questo come valore di attività:
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)
Valori del task di riferimento
Databricks consiglia di fare riferimento ai valori del task come parametri del task configurati usando il modello di riferimento di valori dinamici {{tasks.<task_name>.values.<value_name>}}.
Ad esempio, per fare riferimento al valore del task con la chiave dest_list di un task denominato destination_lookup, usare la sintassi {{tasks.destination_lookup.values.dest_list}}.
Vedere Configurare i parametri dell'attività e i riferimenti a valori dinamici.
Utilizzare dbutils.jobs.taskValues.get.
Per la sintassi dbutils.jobs.taskValues.get() è necessario specificare il nome del task upstream. Questa sintassi non è consigliata, perché è possibile usare i valori dei task in più task downstream, vale a dire che sono necessari più aggiornamenti se cambia il nome di un task.
Usando questa sintassi, è possibile specificare facoltativamente un valore default e un debugValue. Il valore predefinito viene utilizzato se non è possibile trovare la chiave.
debugValue consente di impostare un valore statico da usare durante lo sviluppo manuale del codice e i test nei notebook prima di pianificare il notebook come attività.
L'esempio seguente recupera il valore della chiave booking_status impostata nel nome di un'attività booking_lookup. Il valore confirmed viene restituito solo quando si esegue il notebook in modo interattivo.
booking_status = dbutils.jobs.taskValues.get(taskKey = "booking_lookup", key = "booking_status", debugValue = "confirmed")
Nota
Databricks non consiglia di impostare valori predefiniti, perché possono risultare difficili da risolvere e possono bloccare i messaggi di errore previsti a causa di chiavi mancanti o task denominati in modo errato.
Visualizzare i valori dei task
Il valore restituito di un valore dell'attività per ogni esecuzione viene visualizzato nel riquadro Output dei dettagli dell'esecuzione dell'attività. Vedere Visualizzare la cronologia di esecuzione dei task.