dropDuplicatesWithinWatermark

Retourneer een nieuw DataFrame met dubbele rijen die zijn verwijderd, eventueel alleen rekening houdend met bepaalde kolommen binnen het watermerk.

Syntaxis

dropDuplicatesWithinWatermark(subset: Optional[List[str]] = None)

Parameterwaarden

Kenmerk Typ Beschrijving
subset Lijst met kolomnamen, optioneel Lijst met kolommen die moeten worden gebruikt voor dubbele vergelijking (standaard alle kolommen).

Retouren

DataFrame: DataFrame zonder duplicaten.

Aantekeningen

Dit werkt alleen met streaming DataFrame en watermerk voor het invoerdataframe moet worden ingesteld via withWatermark.

Voor een streaming DataFrame worden alle gegevens over triggers bewaard als tussenliggende status om dubbele rijen te verwijderen. De status blijft behouden om de semantische status 'Gebeurtenissen worden ontdubbeld zolang de tijdsafstand van vroegste en meest recente gebeurtenissen kleiner is dan de vertragingsdrempel van het watermerk'. Gebruikers worden aangemoedigd om de vertragingsdrempel van watermerk langer in te stellen dan de maximale tijdstempelverschillen tussen dubbele gebeurtenissen.

Opmerking: te late gegevens die ouder zijn dan watermerk, worden verwijderd.

Ondersteunt Spark Connect.

Examples

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