denganWatermark

Menentukan marka air waktu peristiwa untuk DataFrame ini. Marka air melacak titik waktu sebelumnya yang kami asumsikan tidak ada lagi data terlambat yang akan tiba.

Sintaksis

withWatermark(eventTime: str, delayThreshold: str)

Parameter-parameternya

Parameter Tipe Deskripsi
eventTime str nama kolom yang berisi waktu peristiwa baris.
delayThreshold str penundaan minimum untuk menunggu data datang terlambat, relatif terhadap catatan terbaru yang telah diproses dalam bentuk interval (misalnya "1 menit" atau "5 jam").

Pengembalian Barang

DataFrame: DataFrame bertanda air.

Catatan

Ini adalah fitur hanya untuk Streaming Terstruktur.

Spark akan menggunakan marka air ini untuk beberapa tujuan:

  • Untuk mengetahui kapan agregasi jendela waktu tertentu dapat diselesaikan dan dengan demikian dapat dipancarkan saat menggunakan mode output yang tidak mengizinkan pembaruan.
  • Untuk meminimalkan jumlah status yang perlu kita simpan untuk agregasi yang sedang berlangsung.

Marka air saat ini dihitung dengan melihat yang terlihat di MAX(eventTime) semua partisi dalam kueri dikurangi pengguna yang ditentukan delayThreshold. Karena biaya koordinasi nilai ini di seluruh partisi, marka air aktual yang digunakan hanya dijamin setidaknya delayThreshold di belakang waktu peristiwa aktual.

Examples

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]