観察
DataFrame上の Metrix という名前の観察対象のクラス。
メトリクスは、アクションによる処理中にDataFrameに適用される集計式です。 Observation インスタンスは、最初のアクションの実行中にメトリクスを収集します。 後続のアクションでは、 Observation.getによって返されるメトリクスは変更されません。 Observation.getによるメトリクスの取得は、最初のアクションが完了してメトリクスが使用可能になるまでブロックされます。
構文
Python
from pyspark.sql import Observation
observation = Observation(name=<name>)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
| str、オプション | 観測とメトリクスの名前。 デフォルトはランダムな UUID 文字列です。 |
プロパティ
属性 | 説明 |
|---|---|
観測されたメトリクスを辞書として返します。 監視対象のデータセットが最初のアクションを完了するまで待機します。最初のアクションの結果のみが利用可能です。 |
注意
このクラスはストリーミング データセットをサポートしていません。
メトリクス列には、リテラル (たとえば、 lit(42) ) が含まれているか、1 つ以上の集計関数 (たとえば、 sum(a)またはsum(a + b) + avg(c) - lit(1) ) が含まれている必要があります。 入力 DataFrame の列への参照を含む式は、常に集計関数で囲む必要があります。
例
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}