我有一台80'000号的pairRDD。只有1.5%的条目是唯一的。为了过滤掉复制的数据,我调用了distinct方法:
val newRDD = oldRDD.distinct然而,这只删除了大部分重复数据-它为每个唯一条目留下了3-5个副本!
我检查了剩下的条目和原始条目,它们是完全相同的。
Sample of the original data:
(1,(0.0500937328554143, 0.9000767961093774))
(1,(0.0500937328554143, 0.9000767961093774))
(1,(0.0500937328554143, 0.9000767961093774))
Sample of the distinct data:
(1,(0.0500937328554143, 0.9000767961093774))
(1,(0.0500937328554143, 0.9000767961093774))
(1,(0.0500937328554143, 0.9000767961093774))关于distinct的工作原理,我是不是遗漏了什么?
发布于 2015-04-07 02:33:28
这些数字在转换为字符串后比较相等,但根据distinct处理它们的方式,它们在转换之前一定不能比较相等。检查比较结果(==),而不是打印它们。
https://stackoverflow.com/questions/29476404
复制相似问题