【发布时间】:2018-12-21 16:36:13
【问题描述】:
加入两个数据框(有自己的 ID)后,我有一些重复(来自两个来源的重复 ID) 我想删除任一 ID 上重复的 所有 行(因此不保留一个重复的出现)
我可以按第一个 ID 进行分组,对 count ==1 进行计数和过滤,然后对第二个 ID 重复该操作,然后将这些输出内部连接回原始连接的数据帧 - 但这感觉有点长。
有没有像 dropDuplicates() 这样更简单的方法,但没有留下任何重复项?
我看到 pandas 可以选择不保留第一个重复项 df.drop_duplicates(subset=['A', 'C'], keep=False)
【问题讨论】:
-
window_df1 = Window.partitionBy("ID1") 和 window_df2 = Window.partitionBy("ID2") 然后我可以在窗口上添加两个 ID 计数的列。然后过滤到仅计数为 1。partitionBy 使用几乎唯一的值会效率低下吗?
标签: join pyspark duplicates