Observation
Une classe pour observer des métriques nommées sur un DataFrame.
Les métriques sont des expressions d’agrégation appliquées au DataFrame pendant qu’il est traité par une action. Une instance d'Observation collecte les métriques lorsque la 1re action est exécutée. Les actions ultérieures ne modifient pas les métriques renvoyées par Observation.get. La récupération de la métrique via Observation.get bloque jusqu’à ce que la première action soit terminée et que les métriques deviennent disponibles.
Syntaxe
from pyspark.sql import Observation
observation = Observation(name=<name>)
parameter
parameter | Type | Description |
|---|---|---|
| str, facultatif | Le nom de l'observation et la métrique. default à une chaîne UUID aléatoire. |
Propriétés
Propriété | Description |
|---|---|
Retourne les métriques observées sous forme de dictionnaire. Attend que le dataset observé termine sa première action. Seul le résultat de la première action est disponible. |
Notes
Cette classe ne prend pas en charge les datasets en streaming.
Les colonnes de métriques doivent contenir soit une valeur littérale (par exemple, lit(42)), soit une ou plusieurs fonctions d'agrégation (par exemple, sum(a) ou sum(a + b) + avg(c) - lit(1)). Les expressions qui contiennent des références aux colonnes du DataFrame d'entrée doivent toujours être enveloppées dans une fonction d'agrégation.
Exemples
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}