spark之map与flatMap差别

scala> val m = List(List("a","b"),List("c","d"))
m: List[List[String]] = List(List(a, b), List(c, d))


scala> m.flatten
res8: List[String] = List(a, b, c, d)

scala> val n = List(List(1,2),List(3,4))
n: List[List[Int]] = List(List(1, 2), List(3, 4))

scala> n.flatMap(x=>x.map(_*2))
res9: List[Int] = List(2, 4, 6, 8)

由以上代码能够看出,flatMap是map和flatten操作的结合,先进行map操作,然后再进行flatten操作。flatMap还能够去除掉空元素NONE。








原文地址:https://www.cnblogs.com/llguanli/p/6940559.html