groupByKey 无法在 spark 中正常工作
groupByKey not properly working in spark
所以,我有一个 RDD,它有如下键值对。
(Key1, Val1)
(Key1, Val2)
(Key1, Val3)
(Key2, Val4)
(Key2, Val5)
在groupByKey之后,我希望得到这样的结果
Key1, (Val1, Val2, Val3)
Key2, (Val4, Val5)
但是,我发现即使在执行 groupByKey() 之后,相同的键仍在重复。键值对的总数当然减少了,但是重复键仍然很多。可能是什么问题?
键的类型基本上是一个Java class,带有整数类型的字段。难不成spark也在考虑对象字段以外的东西来识别那些对象?
groupByKey
和 Spark 中的许多其他方法都依赖于对象哈希。如果 class 的两个实例 return 不相同 hashCode
那么 Spark 不会认为它们相等,即使它们的所有字段都相等。
确保覆盖 equals
和 hashCode
!
所以,我有一个 RDD,它有如下键值对。
(Key1, Val1)
(Key1, Val2)
(Key1, Val3)
(Key2, Val4)
(Key2, Val5)
在groupByKey之后,我希望得到这样的结果
Key1, (Val1, Val2, Val3)
Key2, (Val4, Val5)
但是,我发现即使在执行 groupByKey() 之后,相同的键仍在重复。键值对的总数当然减少了,但是重复键仍然很多。可能是什么问题?
键的类型基本上是一个Java class,带有整数类型的字段。难不成spark也在考虑对象字段以外的东西来识别那些对象?
groupByKey
和 Spark 中的许多其他方法都依赖于对象哈希。如果 class 的两个实例 return 不相同 hashCode
那么 Spark 不会认为它们相等,即使它们的所有字段都相等。
确保覆盖 equals
和 hashCode
!