Dela via


Observation

En klass som ska observera namngivna mått på en DataFrame.

Mått är aggregeringsuttryck som tillämpas på DataFrame medan det bearbetas av en åtgärd. En observationsinstans samlar in måtten medan den första åtgärden körs. Efterföljande åtgärder ändrar inte de mått som returneras av Observation.get. Hämtning av måttet via Observation.get block tills den första åtgärden har slutförts och måtten blir tillgängliga.

Syntax

from pyspark.sql import Observation

observation = Observation(name=<name>)

Parameters

Parameter Type Beskrivning
name str, valfritt Namnet på observationen och måttet. Standardvärdet är en slumpmässig UUID-sträng.

Egenskaper

Fastighet Beskrivning
get Returnerar de observerade måtten som en ordlista. Väntar tills den observerade datauppsättningen har slutfört sin första åtgärd. Endast resultatet av den första åtgärden är tillgängligt.

Notes

Den här klassen stöder inte strömmande datauppsättningar.

Måttkolumnerna måste antingen innehålla en literal (till exempel lit(42)), eller innehålla en eller flera mängdfunktioner (till exempel sum(a) eller sum(a + b) + avg(c) - lit(1)). Uttryck som innehåller referenser till dataramens indatakolumner måste alltid omslutas i en mängdfunktion.

Exempel

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}