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.
Vrátí nový datový rámec s odstraněnými duplicitními řádky, volitelně pouze s ohledem na určité sloupce v rámci vodoznaku.
Syntaxe
dropDuplicatesWithinWatermark(subset: Optional[List[str]] = None)
Parametry
| Parameter | Typ | Description |
|---|---|---|
subset |
Seznam názvů sloupců, volitelné | Seznamsloupcůch |
Návraty
DataFrame: Datový rámec bez duplicit.
Poznámky
To funguje pouze se streamovaným datovým rámcem a vodoznak pro vstupní datový rámec musí být nastaven prostřednictvím withWatermark.
U streamovaného datového rámce se tím zachovají všechna data napříč triggery jako průběžný stav, aby se zahodily duplicitní řádky. Stav bude zachován, aby se zajistilo sémantické, "Události jsou odstraněny duplicitními daty, pokud je časová vzdálenost nejstarších a nejnovějších událostí menší než prahová hodnota zpoždění meze.". Uživatelům se doporučuje nastavit prahovou hodnotu zpoždění meze delší než maximální rozdíly časových razítek mezi duplicitními událostmi.
Poznámka: Příliš pozdní data starší než vodoznak se zahodí.
Podporuje Spark Connect.
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]
df.dropDuplicatesWithinWatermark()
df.dropDuplicatesWithinWatermark(['value'])