Spark简单案例实战
一.给定一组键值对(“spark”,2),(“hadoop”,6),(“hadoop”,4),(“spark”,6)键值对的key表示图书名称,value表示每天图书销量,请计算出每个键对应的平均值,也就是每种图书每天的平均销量。
1.代码如下:
val book = Array(("spark",2),("hadoop",6),("hadoop",4),("spark",6))
val rdd = sc.parallelize(book)
rdd.mapValues(x=>(x,1)).reduceByKey((x,y)=>(x._1+y._1,x._2+y._2)).
mapValues(x=>(x._1/x._2)).collect()
- 对上面的操作的一些注释:
x=>(x,1)是为了后面累加出项数而准备,所以凑出(_,1)的样式
(x,y)=>(x._1+y._1,x._2+y._2) 还是对values进行的操作【这个才是关键】,将values中的键值分别对应相加
x=>(x._1/x._2) 求出平均值