Partager via


Observation

Classe à observer les métriques nommées sur un DataFrame.

Les métriques sont des expressions d’agrégation appliquées au DataFrame pendant qu’elles sont traitées par une action. Une instance d’observation collecte les métriques pendant l’exécution de la première action. Les actions suivantes ne modifient pas les métriques retournées par Observation.get. Récupération de la métrique via Observation.get des blocs 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>)

Paramètres

Paramètre Type Description
name str, facultatif Nom de l’observation et de la métrique. La valeur par défaut est une chaîne UUID aléatoire.

Propriétés

Propriété Description
get Retourne les métriques observées en tant que dictionnaire. Attend que le jeu de données observé termine sa première action. Seul le résultat de la première action est disponible.

Remarques

Cette classe ne prend pas en charge les jeux de données de diffusion en continu.

Les colonnes de métriques doivent contenir un littéral (par exemple, lit(42)) ou contenir 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 encapsulé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}