flatMap
val lineArray = Array("hello you","hello me","hello world")
val lines = sc.parallelize(lineArray, 1)
val words = lines.flatMap(line =>{ line.split(" ") })
words.foreach {
word => println(word.mkString)
}
结果:
hello
you
hello
me
hello
world
map:
val lineArray = Array("hello you","hello me","hello world")
val lines = sc.parallelize(lineArray, 1)
val words = lines.map(line =>{ line.split(" ") })
words.foreach {
word => println(word.mkString)
}
结果:
helloyou
hellome
helloword
flatmap是将输入的数据首先进行map操作,然后再进行压平操作,从上面可以看出经过map操作过后的结果是Array(Array()…) , 压平就是将Array中的数组都变成元素Array(…)。flatMap会将其返回的数组全部拆散,然后合成到一个数组中即对每一个数据作用那个function
map:获取一个新元素(原本几个元素还是几个元素) flatmap 获取一个或者多个新元素(比原来的元素多)