hapusDuplikatDalamTandaAir

Mengembalikan DataFrame baru dengan baris duplikat dihapus, secara opsional hanya mempertimbangkan kolom tertentu, dalam marka air.

Sintaksis

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

Parameter-parameternya

Parameter Tipe Deskripsi
subset Daftar nama kolom, opsional Daftar kolom yang akan digunakan untuk perbandingan duplikat (default Semua kolom).

Pengembalian Barang

DataFrame: DataFrame tanpa duplikat.

Catatan

Ini hanya berfungsi dengan streaming DataFrame, dan marka air untuk dataframe input harus diatur melalui withWatermark.

Untuk DataFrame streaming, ini akan menyimpan semua data di seluruh pemicu sebagai status menengah untuk menghilangkan baris duplikat. Status akan disimpan untuk menjamin semantik, "Peristiwa dideduplikasi selama jarak waktu peristiwa paling awal dan terbaru lebih kecil dari ambang keterlambatan marka air." Pengguna didorong untuk mengatur ambang penundaan marka air lebih lama dari perbedaan tanda waktu maks di antara peristiwa duplikat.

Catatan: data terlambat yang lebih lama dari marka air akan dihilangkan.

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