withWatermark

この DataFrame のイベント時間基準値を定義します。 ウォーターマークは、それ以上遅延データが到着しないと仮定する前の時点を追跡します。

構文

withWatermark(eventTime: str, delayThreshold: str)

パラメーター

パラメーター タイプ 説明
eventTime str 行のイベント時刻を含む列の名前。
delayThreshold str 間隔の形式で処理された最新のレコード (例: "1 分" または "5 時間") を基準にして、データが到着するまで待機する最小遅延。

返品

DataFrame: 透かし付きデータフレーム。

メモ

これは、構造化ストリーミング専用の機能です。

Spark では、いくつかの目的でこの透かしが使用されます。

  • 特定の時間枠の集計をいつ終了できるかを知るために、更新を許可しない出力モードを使用するときに出力できます。
  • 継続的な集計のために保持する必要がある状態の量を最小限に抑えるため。

現在の基準値は、クエリ内のすべてのパーティションで表示 MAX(eventTime) からユーザー指定の delayThresholdを引いた値を引いて計算されます。 パーティション間でこの値を調整するコストのため、実際に使用される透かしは、実際のイベント時間より少なくとも delayThreshold 遅れていると保証されます。

例示

from pyspark.sql import Row
from pyspark.sql.functions import timestamp_seconds
df = spark.readStream.format("rate").load().selectExpr(
    "value % 5 AS value", "timestamp")
df.select("value", df.timestamp.alias("time")).withWatermark("time", '10 minutes')
# DataFrame[value: bigint, time: timestamp]