一、reduceByKey
接收一个函数,按照相同的key进行reduce操作,类似于scala的reduce的操作
scala版本
例1:对二元组进行reduceByKey
val rdd1=sc.makeRDD(List((1,2),(1,3),(4,6),(4,8),(5,1)))
val rdd2=rdd1.reduceByKey((x,y)=>{
println(x+"+"+y);x+y})
rdd2.collect.foreach(println)
例二:单词计数
准备文件
aa bb cc aa aa aa dd dd zz ee ff ee
ff aa bb zz
ee kk
cc zz zzz
val rdd=sc.textFile("D:/test/sample.txt")
rdd.flatMap(_.split(" ")).map(x=>(x,1)).reduceByKey(_+_).collect.foreach(println)
java版本
JavaRDD<String> rdd=sc.textFile("in/sample.txt")
FlatMapFunction<String,Tuple2<String,Integer>> flatMapFunction=new FlatMapFunction<String,Tuple2<String,Integer>>(){
@override
public Iterator<Tuple2<String