OdstraněníDuplicitVeVodoznaku

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'])