spark2。x由浅入深深到底系列六之抽样java api详解三

  

学习任何火花知识点之前请先正确理解火花,可以参考:


本文详细介绍了火花键-值类型的抽样java api


一、键值类型的抽样的创建方式

1, sparkContext。parallelizePairs

JavaPairRDD<字符串,Integer>, javaPairRDD =,,,,,,,sc.parallelizePairs (arrays . aslist (new  Tuple2(“测试”,3),new  Tuple2(“三k党”,3)));//结果:[(测试,3),,(三k党,3)]   System.out.println (javaPairRDD =,, +, javaPairRDD.collect ());

2, keyBy的方式

public  class  User  implements  Serializable  {   ,,,private  String 标识;      ,,,private  Integer 数量;      ,,,public 用户(String  userId, Integer 数量),{   ,,,,,,,this.userId =,标识;   ,,,,,,,this.amount =,数量;   ,,,}      ,,@Override   ,,,public  String  toString (), {   ,,,,,,,return “用户{”+   ,,,,,,,,,,,,,,,“用户id=? + userId  +, \”+   ,,,,,,,,,,,,,,,”,金额=",+,amount  +   ,,,,,,,,,,,,,,,'}';   ,,,}   }      JavaRDD, userJavaPairRDD =, userJavaRDD.keyBy (new  Function<用户,String> (), {   ,,@Override   ,,,public  String 调用(User 用户),throws  Exception  {   ,,,,,,,return  user.getUserId ();   ,,,}   });//结果:[(u1,用户{userId=畊1’,,金额=20}))   System.out.println (userJavaPairRDD =,, +, userJavaPairRDD.collect ());

3,邮政的方式

JavaRDD, rdd =, sc.parallelize (arrays . aslist(1,, 1,, 2,, 3, 5, 8日,13));//两个rdd 邮政也是创建键-值类型抽样的一种方式   JavaPairRDD<整数,Integer>, zipPairRDD =, rdd.zip(抽样);//结果:[(1,1),(1,- 1),(2,2),(3、3),(5),,(8、8),(13、13)]   System.out.println (zipPairRDD =,, +, zipPairRDD.collect ());

4, groupBy的方式

JavaRDD, rdd =, sc.parallelize (arrays . aslist(1,, 1,, 2,, 3, 5, 8日,13));   Function<整数,Boolean>, isEven =, new  Function<整数,,Boolean> (), {   ,,@Override   ,,,public  Boolean 调用(Integer  x), throws  Exception  {   ,,,,,,,return  x  %, 2,==, 0;   ,,,}   };//将偶数和奇数分组,生成键-值类型的抽样   JavaPairRDD<布尔,Iterable

二,combineByKey

JavaPairRDD<字符串,Integer>, javaPairRDD =,,,,,,,sc.parallelizePairs (arrays . aslist (new  Tuple2(“咖啡”,,1),,new  Tuple2(“咖啡”,,2),   ,,,,,,,,,,,,,,,new  Tuple2(“熊猫”,3),new  Tuple2(“咖啡”,,9)),2);//当在一个分区中遇到新的关键的时候,对这个关键对应的价值应用这个函数   Function<整数,Tuple2<整数,Integer>祝辞,createCombiner =, new  Function<整数,,Tuple2<整数,,Integer>在(),{   ,,@Override   ,,,public  Tuple2<整数,,Integer>,叫(Integer 价值),throws  Exception  {   ,,,,,,,return  new  Tuple2<祝辞(价值,,1);   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

spark2。x由浅入深深到底系列六之抽样java api详解三