Compartilhar via


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 Observação 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 da métrica por meio Observation.get de blocos até que a primeira ação seja concluída e as métricas fiquem disponíveis.

Sintaxe

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 da métrica. O padrão é uma cadeia de caracteres UUID aleatória.

Propriedades

Propriedade Descrição
get Retorna as métricas observadas como um dicionário. Aguarda até que o conjunto de dados observado conclua sua primeira ação. Somente o resultado da primeira ação está disponível.

Observações

Essa classe não dá suporte a conjuntos de dados de streaming.

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 contêm referências às colunas do DataFrame de entrada sempre devem ser encapsuladas em uma função de agregação.

Exemplos

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}