Spark常用的算子总结—— flatMapValues

Posted pocahontas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark常用的算子总结—— flatMapValues相关的知识,希望对你有一定的参考价值。


 

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常用的算子总结—— flatMapValues的主要内容,如果未能解决你的问题,请参考以下文章

❤️Spark的常用算子大总结❤️

Spark常用的算子总结——Map

Spark常用的算子总结—— flatMapValues

spark常用的算子总结—— join

Spark常用的算子总结——flatMap

Spark常用的算子以及Scala函数总结