所以,我有一个RDD,它具有键值对,如下所示。
(Key1, Val1)
(Key1, Val2)
(Key1, Val3)
(Key2, Val4)
(Key2, Val5)
在groupByKey之后,我希望能得到像这样的东西
Key1, (Val1, Val2, Val3)
Key2, (Val4, Val5)
但是,我发现即使在执行groupByKey()之后也会重复相同的键。键值对的总数肯定会减少,但仍有许多重复键。可能是什么问题?
键的类型基本上是具有整数类型字段的Java类。难道火花还在考虑除了用于识别这些物体的物体的区域之外的东西吗?
答案 0 :(得分:2)
groupByKey
并且Spark中的许多其他方法都依赖于对象哈希。如果你的类的两个实例没有返回相同的hashCode
,那么即使所有字段都相等,Spark也不会认为它们是相等的。
请务必覆盖equals
和hashCode
!