Condividi tramite


Osservazione

Classe per osservare le metriche denominate in un dataframe.

Le metriche sono espressioni di aggregazione applicate al dataframe mentre vengono elaborate da un'azione. Un'istanza di Osservazione raccoglie le metriche mentre viene eseguita la prima azione. Le azioni successive non modificano le metriche restituite da Observation.get. Recupero della metrica tramite Observation.get blocchi fino a quando la prima azione non è terminata e le metriche diventano disponibili.

Sintassi

from pyspark.sql import Observation

observation = Observation(name=<name>)

Parametri

Parametro Tipo Descrizione
name str, facoltativo Nome dell'osservazione e della metrica. Il valore predefinito è una stringa UUID casuale.

Proprietà

Proprietà Descrizione
get Restituisce le metriche osservate come dizionario. Attende che il set di dati osservato termini la prima azione. È disponibile solo il risultato della prima azione.

Note

Questa classe non supporta i set di dati di streaming.

Le colonne delle metriche devono contenere un valore letterale ,ad esempio lit(42), oppure devono contenere una o più funzioni di aggregazione , ad esempio sum(a) o sum(a + b) + avg(c) - lit(1). Le espressioni che contengono riferimenti alle colonne del dataframe di input devono essere sempre racchiuse in una funzione di aggregazione.

Examples

from pyspark.sql.functions import col, count, lit, max
from pyspark.sql import Observation

df = spark.createDataFrame([["Alice", 2], ["Bob", 5]], ["name", "age"])
observation = Observation("my metrics")
observed_df = df.observe(observation, count(lit(1)).alias("count"), max(col("age")))
observed_df.count()
2
observation.get
{'count': 2, 'max(age)': 5}