欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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
    ....
}

最终问题解决

 

相关标签: SparkRDD Distinct