学习任何火花知识点之前请先正确理解火花,可以参考:
本文详细介绍了火花键-值类型的抽样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 nullspark2。x由浅入深深到底系列六之抽样java api详解三