Apache Spark RDD与众不同 - 奇怪的行为

时间:2015-04-06 17:37:38

标签: scala apache-spark rdd

我的pairRDD大小为80'000。只有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如何运作,我有什么遗漏?

1 个答案:

答案 0 :(得分:1)

这些数字在转换为字符串后比较相等,但根据distinct处理它们的方式,它们在转换前不得相等。而不是打印它们,检查比较结果(==)。