Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Zurückgeben eines neuen DataFrames mit entfernten doppelten Zeilen, optional nur unter Berücksichtigung bestimmter Spalten innerhalb des Wasserzeichens.
Syntax
dropDuplicatesWithinWatermark(subset: Optional[List[str]] = None)
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
subset |
Liste der Spaltennamen, optional | Liste der Spalten, die für den doppelten Vergleich verwendet werden sollen (Standard "Alle Spalten"). |
Rückkehr
DataFrame: DataFrame ohne Duplikate.
Hinweise
Dies funktioniert nur beim Streamen von DataFrame, und das Wasserzeichen für den Eingabedatenframe muss über withWatermarkfestgelegt werden.
Bei einem Streaming-DataFrame werden dadurch alle Daten über Trigger hinweg als Zwischenzustand beibehalten, um duplizierte Zeilen abzulegen. Der Zustand wird beibehalten, um die Semantik zu gewährleisten, "Ereignisse werden dedupliziert, solange der Zeitabstand der frühesten und neuesten Ereignisse kleiner als der Verzögerungsschwellenwert des Wasserzeichens ist." Benutzer werden ermutigt, den Verzögerungsschwellenwert des Wasserzeichens festzulegen, der länger als die maximalen Zeitstempelunterschiede zwischen duplizierten Ereignissen ist.
Hinweis: Zu späte Daten, die älter als Wasserzeichen sind, werden gelöscht.
Unterstützt Spark Connect.
Beispiele
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'])