spark中flatmap和map的区别
以前总是分不清楚spark中flatmap和map的区别,现在弄明白了,总结分享给大家,先看看flatmap和map的定义。 map()是将函数用于RDD中的每个元素,将返回值构成新的RDD。 flatmap()是将函数应用于RDD中的每个元素,将返回的迭代器的所有内容构成新的RDD 有些拗口,看看例子就明白了。 val rdd = sc.parallelize(List( "coffee panda" , "happy panda" , "happiest panda party" )) 输入 rdd .map ( x => x ) .collect 结果 res9: Array[String] = Array(coffee panda, happy panda, happiest panda party) 输入 rdd .flatMap ( x => x .split ( " " )) .collect 结果: res8: Array[String] = Array(coffee, panda, happy, panda, happiest, panda, party) flatMap说明白就是先map然后再flat,再来看个例子 val rdd1 = sc .parallelize (List( 1 , 2 , 3 , 3 )) scala> rdd1 .map ( x =>