withWatermark

Bu DataFrame için bir olay zamanı filigranı tanımlar. Filigran, daha önce geç veri gelemeyeceksin varsaydığımız bir noktayı izler.

Sözdizimi

withWatermark(eventTime: str, delayThreshold: str)

Parametreler

Parametre Türü Açıklama
eventTime str satırın olay zamanını içeren sütunun adı.
delayThreshold str bir aralık biçiminde işlenen en son kayda göre (örneğin, "1 dakika" veya "5 saat") verilerin geç gelmesini beklemeye yönelik en düşük gecikme süresi.

İadeler

DataFrame: Filigranlı DataFrame.

Notlar

Bu yalnızca Yapılandırılmış Akış için bir özelliktir.

Spark bu filigranı çeşitli amaçlarla kullanır:

  • Belirli bir zaman penceresi toplama işleminin ne zaman son haline getirilebileceğini ve bu nedenle güncelleştirmelere izin verilmeyen çıkış modları kullanılırken yayılabildiğini bilmek.
  • Devam eden toplamalar için tutmamız gereken durum miktarını en aza indirmek için.

Geçerli filigran, sorguda belirtilen MAX(eventTime)bir kullanıcı çıkarılarak tüm bölümlerde görülen öğesine bakılarak delayThreshold hesaplanır. Bu değeri bölümler arasında koordine etme maliyeti nedeniyle, kullanılan gerçek filigranın yalnızca gerçek olay süresinin en az delayThreshold gerisinde olması garanti edilir.

Örnekler

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]