dropDuplicates

Returnera en ny DataFrame med duplicerade rader borttagna, om du bara vill överväga vissa kolumner.

Syntax

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

Parameters

Parameter Type Beskrivning
subset lista över kolumnnamn, valfritt Lista över kolumner som ska användas för dubblettjämförelse (standard alla kolumner).

Retur

DataFrame: DataFrame utan dubbletter.

Notes

För en statisk batchdataram släpper den bara dubbletter av rader. För en strömmande DataFrame behåller den alla data över utlösare som mellanliggande tillstånd för att släppa dubbletter av rader. Du kan använda withWatermark för att begränsa hur sent duplicerade data kan vara och systemet begränsar därmed tillståndet. Dessutom tas data som är äldre än vattenstämpeln bort för att undvika eventuella dubbletter.

Exempel

from pyspark.sql import Row
df = spark.createDataFrame([
    Row(name='Alice', age=5, height=80),
    Row(name='Alice', age=5, height=80),
    Row(name='Alice', age=10, height=80)
])

df.dropDuplicates().show()
# +-----+---+------+
# | name|age|height|
# +-----+---+------+
# |Alice|  5|    80|
# |Alice| 10|    80|
# +-----+---+------+

df.dropDuplicates(['name', 'height']).show()
# +-----+---+------+
# | name|age|height|
# +-----+---+------+
# |Alice|  5|    80|
# +-----+---+------+