You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pyspark如何基于ncf和date两列删除DataFrame重复数据

PySpark按指定列删除重复行解决方案

你可以根据实际需求选择对应实现方式:

场景1:每个(ncf, date)组合保留1行

如果重复的ncf+date组合仅需要保留任意1行(默认保留首次出现的行),直接使用内置dropDuplicates方法即可:

# 指定按ncf和date两列判断重复
result_df = df.dropDuplicates(subset=["ncf", "date"])

场景2:完全删除所有出现重复的(ncf, date)对应行

如果需要把出现过至少2次的ncf+date组合对应的所有行全部删除,和你给出的预期结果完全匹配,使用窗口函数实现:

from pyspark.sql import functions as F
from pyspark.sql.window import Window

# 按ncf、date分组统计每组出现次数,过滤仅保留次数为1的行
result_df = df.withColumn("group_cnt", F.count("*").over(Window.partitionBy("ncf", "date"))) \
              .filter(F.col("group_cnt") == 1) \
              .drop("group_cnt")

运行上述代码后得到的result_df就和你贴出的预期输出完全一致。


内容的提问来源于stack exchange,提问作者daniel____

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:06:03