如何从 pyspark 数据框中删除所有重复项

问题描述 投票:0回答:1

在此 Pyspark Dataframe 中,有些记录在

ID
字段上有重复。

身份证 开始_dt
1 2020-02-09
1 2021-02-15
2 2022-05-04
3 2023-05-15

我想删除所有有重复的记录。在这种情况下,所有

ID
等于 1 的行都应被删除。

身份证 开始_dt
2 2022-05-04
3 2023-05-15

如何在 pyspark 中执行此操作

dataframe pyspark duplicates
1个回答
1
投票

您可以尝试按 id 分组并过滤 count > 1 的 id,然后您可以使用此过滤后的 id 重新连接以获得所需的输出

from pyspark.sql.functions import col

data = [(1, "2020-02-09"), (1, "2021-02-15"), (2, "2022-05-04"), (3, "2023-05-15")]
columns = ["ID", "start_dt"]
df = spark.createDataFrame(data, columns)

df.join(
    df.groupBy("ID").count().filter(col("count") == 1).select("ID"), "ID", "inner"
).show()
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.