返回删除了重复行的新 DataFrame,可以选择只考虑某些列。
Syntax
dropDuplicates(subset: Optional[List[str]] = None)
参数
| 参数 | 类型 | 说明 |
|---|---|---|
subset |
列名列表(可选) | 用于重复比较的列列表(默认为“所有列”)。 |
退货
DataFrame:不带重复项的数据帧。
备注
对于静态批处理数据帧,它只会删除重复的行。 对于流式处理数据帧,它将跨触发器保留所有数据作为中间状态来删除重复行。 可用于 withWatermark 限制重复数据可能迟到的方式,系统将相应地限制状态。 此外,将删除早于水印的数据,以避免出现重复数据。
示例
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|
# +-----+---+------+