首页 > 其他 > 详细

Spark常用的算子总结(3)—— flatMapValues

时间:2019-08-11 15:24:45      阅读:112      评论:0      收藏:0      [点我收藏+]

 

flatmapValues就是和flatmap差不多,但是人家本身就是个key value了,所以一个pair怎么变成多个pair呢,就是根据关于values的函数
val a = sc.parallelize(List((1,2),(3,4),(5,6)))
val b = a.flatMapValues(x=>1 to x)
b.collect.foreach(println(_))
/*结果
(1,1)
(1,2)
(3,1)
(3,2)
(3,3)
(3,4)
(5,1)
(5,2)
(5,3)
(5,4)
(5,5)
(5,6)
*/

 把一个pair里的values变成一个数组,然后k-v1 k-v2...

val list = List(("mobin",22),("kpop",20),("lufei",23))
val rdd = sc.parallelize(list)
val mapValuesRDD = rdd.flatMapValues(x => Seq(x,"male"))
mapValuesRDD.foreach(println)

输出:

(mobin,22)
(mobin,male)
(kpop,20)
(kpop,male)
(lufei,23)
(lufei,male)

如果是mapValues会输出:【对比区别】

(mobin,List(22, male))
(kpop,List(20, male))
(lufei,List(23, male))


 

 

 

 

Spark常用的算子总结(3)—— flatMapValues

原文:https://www.cnblogs.com/pocahontas/p/11334575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!