Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Definuje meze času události pro tento datový rámec. Vodoznak sleduje bod v čase, před kterým předpokládáme, že nedorazí žádná pozdější data.
Syntaxe
withWatermark(eventTime: str, delayThreshold: str)
Parametry
| Parameter | Typ | Description |
|---|---|---|
eventTime |
str | název sloupce, který obsahuje čas události řádku. |
delayThreshold |
str | minimální zpoždění čekání na pozdní doručení dat vzhledem k nejnovějšímu záznamu, který byl zpracován ve formě intervalu (např. "1 minuta" nebo "5 hodin"). |
Návraty
DataFrame: Datový rámec s vodoznakem
Poznámky
Toto je funkce pouze pro strukturované streamování.
Spark použije tento vodoznak pro několik účelů:
- Chcete-li zjistit, kdy se dá agregace časového intervalu dokončit, a tudíž je možné ji vygenerovat při použití výstupních režimů, které neumožňují aktualizace.
- Abychom minimalizovali množství stavu, které musíme zachovat pro probíhající agregace.
Aktuální vodoznak se vypočítá tak, že se podíváte na MAX(eventTime) zobrazení ve všech oddílech v dotazu minus zadaný delayThresholduživatel . Vzhledem k nákladům na koordinování této hodnoty napříč oddíly je zaručeno, že skutečná hodnota se použije jenom za delayThreshold skutečnou dobou události.
Příklady
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]