在此 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 中执行此操作
您可以尝试按 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()