spark中迭代器的使用(求最大或最小)

简介: spark中迭代器的使用(求最大或最小)

groupbykey


import java.util.Arrays;
import java.util.List;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import jersey.repackaged.com.google.common.collect.Lists;
import scala.Tuple2;
public class groupbykey {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    SparkConf conf=new SparkConf().setAppName("").setMaster("local");
    JavaSparkContext sc=new JavaSparkContext(conf);
    List<Tuple2<String,Integer>> scores=Arrays.asList(
        new Tuple2<String,Integer>("jac",80),
        new Tuple2<String,Integer>("jac",100),
        new Tuple2<String,Integer>("jac",70),
        new Tuple2<String,Integer>("gs",80),
        new Tuple2<String,Integer>("gs",90)
        );
    JavaPairRDD<String,Integer> pardd=sc.parallelizePairs(scores);
    JavaPairRDD<String,Iterable<Integer>> pardd1=pardd.groupByKey();
    JavaPairRDD<String,Integer> pardd2=
        pardd1.mapValues(f->{
      List<Integer> li=Lists.newArrayList(f);//迭代器转list
      Integer j=0;
      for(int i=0;i<li.size();i++) {
        if(li.get(i)>j) {
          j=li.get(i);
        }
      }
      return j;
    });
    pardd2.foreach(f->System.out.println(f));
  }
}
相关文章
|
19天前
|
测试技术
你知道几种遍历map的方式?
你知道几种遍历map的方式?
|
19天前
|
C++ 容器
计算stl中重复元素个数的函数
计算stl中重复元素个数的函数
|
10月前
删除链表中等于给定值 val 的所有节点
删除链表中等于给定值 val 的所有节点
|
12月前
|
存储
返回集合中最大,最小的元素,再将元素进行排序
返回集合中最大,最小的元素,再将元素进行排序
49 0
|
C++ 容器
C++ vector 删除和排序的相关函数
C++ vector 删除和排序的相关函数
64 0
给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度?
给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度?
288 0
给定一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度?
|
编译器
遍历Map的六种方式
遍历Map的六种方式
152 0
遍历Map的六种方式
批量遍历 list 中的元素
批量遍历 list 中的元素
82 0
批量遍历 list 中的元素
|
Java
最小的k个数(Java实现)
最小的k个数(Java实现)
97 1