Freigeben über


Beobachtung

Eine Klasse, die benannte Metriken in einem DataFrame beobachtet.

Metriken sind Aggregationsausdrücke, die auf den DataFrame angewendet werden, während sie von einer Aktion verarbeitet werden. Eine Beobachtungsinstanz erfasst die Metriken, während die erste Aktion ausgeführt wird. Nachfolgende Aktionen ändern nicht die metriken, die von Observation.get. Abrufen der Metrik über Observation.get Blöcke, bis die erste Aktion abgeschlossen ist und Metriken verfügbar sind.

Syntax

from pyspark.sql import Observation

observation = Observation(name=<name>)

Parameter

Parameter Typ Beschreibung
name str, optional Der Name der Beobachtung und der Metrik. Standardmäßig wird eine zufällige UUID-Zeichenfolge verwendet.

Eigenschaften

Eigentum Beschreibung
get Gibt die beobachteten Metriken als Wörterbuch zurück. Wartet, bis das beobachtete Dataset seine erste Aktion beendet hat. Nur das Ergebnis der ersten Aktion ist verfügbar.

Hinweise

Diese Klasse unterstützt keine Streaming-Datasets.

Die Metrikspalten müssen entweder ein Literal (z. B lit(42). ) enthalten oder eine oder mehrere Aggregatfunktionen enthalten (z sum(a) . B. oder sum(a + b) + avg(c) - lit(1)). Ausdrücke, die Verweise auf die Spalten des Eingabedatenframes enthalten, müssen immer in eine Aggregatfunktion eingeschlossen werden.

Beispiele

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}