当前位置:   article > 正文

spark常用RDD算子 - groupByKey_rdd groupbykey

rdd groupbykey

groupByKey是对单个 RDD 的数据进行分组

def groupByKey(): RDD[(K, Iterable[V])]

def groupByKey(numPartitions: Int): RDD[(K, Iterable[V])]

def groupByKey(partitioner: Partitioner): RDD[(K, Iterable[V])]

groupByKey会将RDD[key,value] 按照相同的key进行分组,形成RDD[key,Iterable[value]]的形式, 有点类似于sql中的groupby,例如类似于mysql中的group_concat 
例如这个例子, 我们对学生的成绩进行分组 

  1. JavaRDD<Tuple2<String,Float>> scoreDetails = javaSparkContext.parallelize(Arrays.asList(new Tuple2("xiaoming", 75)
  2. , new Tuple2("xiaoming", 90)
  3. , new Tuple2("lihua", 95)
  4. , new Tuple2("lihua", 188)));
  5. //将JavaRDD<Tuple2<String,Float>> 类型转换为 JavaPairRDD<String, Float>
  6. JavaPairRDD<String, Float> scoreMapRDD = JavaPairRDD.fromJavaRDD(scoreDetails);
  7. JavaPairRDD<String, Iterable<Float>> stringIterableJavaPairRDD = scoreMapRDD.groupByKey(2);
  8. System.out.println(stringIterableJavaPairRDD.collectAsMap());
  9. //返回的结果
  10. //{lihua=[95, 188], xiaoming=[75, 90]}

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/466686
推荐阅读
相关标签
  

闽ICP备14008679号