Compartir a través de


Observación

Clase para observar las métricas con nombre en un dataframe.

Las métricas son expresiones de agregación aplicadas al dataframe mientras una acción la procesa. Una instancia de Observación recopila las métricas mientras se ejecuta la primera acción. Las acciones posteriores no modifican las métricas devueltas por Observation.get. Recuperación de la métrica a través Observation.get de bloques hasta que la primera acción haya finalizado y las métricas estén disponibles.

Sintaxis

from pyspark.sql import Observation

observation = Observation(name=<name>)

Parámetros

Parámetro Tipo Descripción
name str, opcional Nombre de la observación y la métrica. El valor predeterminado es una cadena UUID aleatoria.

Propiedades

Propiedad Descripción
get Devuelve las métricas observadas como un diccionario. Espera hasta que el conjunto de datos observado finaliza su primera acción. Solo está disponible el resultado de la primera acción.

Notas

Esta clase no admite conjuntos de datos de streaming.

Las columnas de métricas deben contener un literal (por ejemplo, lit(42)), o deben contener una o varias funciones de agregado (por ejemplo, sum(a) o sum(a + b) + avg(c) - lit(1)). Las expresiones que contienen referencias a las columnas de DataFrame de entrada siempre se deben encapsular en una función de agregado.

Ejemplos

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}