Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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]