spark 中map 和 flatMap 的区别
代码如下:
scala> sc.parallelize(Array("a_b","c_d","e_f")).foreach(println)
a_b
c_d
e_f
scala> sc.parallelize(Array("a_b","c_d","e_f")).map(string=>{string.split("_")}).foreach(x=>{println(x.mkString(","))})
c,d
a,b
e,f
scala> sc.parallelize(Array("a_b","c_d","e_f")).flatMap(string=>{string.split("_")}).foreach(x=>{println(x.mkString(","))})
a
b
c
d
e
f
可以发现:flatMap = flatten + map,flatMap 会把数组里面的元素先压平,降到一维,再打碎。
而 map 只是把最外围的包裹打开。