我尝试过使用python过滤数据
|name_x | age_x | salary_x | name_y | age_y | salary_y | age_diff
| James | 23 | 200000 | Jack | 24 | 210040 | 1
| Jack | 24 | 210040 | James | 23 | 200000 | 1
| Irene | 25 | 200012 | John | 25 | 210000 | 0
| Johny | 26 | 21090 | Elon | 29 | 210012 | 3
| Josh | 24 | 21090 | David | 23 | 213012 | 1
| John | 25 | 210000 | Irene | 25 | 200012 | 0
第1行行和第2行也是重复的
第3行和第6行是重复的
姓名==姓名,年龄,工资=工资
,不考虑年龄差异,即输出。
我需要把它们过滤掉,[其中一个重复的行]。在
需要最终输出为:如下过滤出重复项
^{pr2}$在python上实现如下,它返回重复项的索引,而且速度太慢。在
^{3}$但是现在我不得不用spark在Scala上做这些,有没有更快的方法来接近这些过滤器,或者类似python中的shift。或scala上的窗口
我认为astro_asz的答案是更简洁的方法,但为了完整起见,以下是如何使用窗口来实现:
编辑:我更改了数据集,使两个人同名,并根据每行的内容添加了一个唯一的ID
您可以向只保留两行中的一行的联接添加附加条件,例如name_x<;name_y。下面是一个示例:
示例数据帧:
它给出了:
^{pr2}$重命名dataframe的列:
然后用三个条件进行连接:
它回来了
根据在数据中定义重复项的方式,区分两个重复项的条件将不同。在
相关问题 更多 >
编程相关推荐