Pular para o conteúdo principal

Observação

Uma classe para observar métricas nomeadas em um DataFrame.

As métricas são expressões de agregação aplicadas ao DataFrame enquanto ele está sendo processado por uma ação. Uma instância de Observation coleta as métricas enquanto a primeira ação é executada. As ações subsequentes não modificam as métricas retornadas por Observation.get. Recuperação dos métricas por meio de blocos Observation.get até que a primeira ação seja concluída e as métricas fiquem disponíveis.

Sintaxe

Python
from pyspark.sql import Observation

observation = Observation(name=<name>)

Parâmetros

Parâmetro

Tipo

Descrição

name

str, opcional

O nome da Observação e os metros. Por padrão, são utilizadas strings UUID aleatórias.

Propriedades

Propriedade

Descrição

get

Retorna as métricas observadas como um dicionário. Aguarda até que o dataset observado termine sua primeira ação. Somente o resultado da primeira ação está disponível.

Notas

Esta classe não suporta conjunto de dados.

As colunas de métricas devem conter um literal (por exemplo, lit(42)), ou devem conter uma ou mais funções de agregação (por exemplo, sum(a) ou sum(a + b) + avg(c) - lit(1)). Expressões que contenham referências às colunas do DataFrame de entrada devem sempre ser envolvidas por uma função de agregação.

Exemplos

Python
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()
Output
2
Python
observation.get
Output
{'count': 2, 'max(age)': 5}