次の方法で共有


観察

DataFrame で名前付きメトリックを観察するクラス。

メトリックは、アクションによって処理されている間に DataFrame に適用される集計式です。 Observation インスタンスは、最初のアクションの実行中にメトリックを収集します。 後続のアクションでは、 Observation.getによって返されるメトリックは変更されません。 最初のアクションが完了し、メトリックが使用可能になるまで、 Observation.get ブロックを使用してメトリックを取得します。

構文

from pyspark.sql import Observation

observation = Observation(name=<name>)

パラメーター

パラメーター タイプ 説明
name str、省略可能 観測値とメトリックの名前。 既定では、ランダムな UUID 文字列が使用されます。

プロパティ

財産 説明
get 観測されたメトリックをディクショナリとして返します。 観察されたデータセットが最初のアクションを完了するまで待機します。 最初のアクションの結果のみが使用できます。

メモ

このクラスは、ストリーミング データセットをサポートしていません。

メトリック列にはリテラル ( lit(42) など) を含めるか、1 つ以上の集計関数 ( sum(a)sum(a + b) + avg(c) - lit(1)など) を含める必要があります。 入力 DataFrame の列への参照を含む式は、常に集計関数でラップする必要があります。

例示

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}