SparkRDD distinct 失败原因
程序员文章站
2022-06-11 17:14:46
...
背景:
目前有一个pairRDD,key是String类型,value是Model类型
使用rdd.distinct() 发现个数没有减少
代码:
System.out.println("brandModelRDD count:" + brandModelRDD.count());
JavaPairRDD<String, BrandModel> distinct = brandModelRDD.distinct();
System.out.println("distinct count:" + distinct.count());
结果如下图:
brandModelRDD count:41520
distinct count:41520
原因是因为没有重写model中的equals,hashCode方法
重写equals,hashCode
//需要比较什么字段就写什么字段
@Override
public boolean equals(Object o) {
xxxxxxx
...
}
@Override
public int hashCode() {
xxx
....
}
最终问题解决