map可以对一个集合中的每一个元素进行操作,适用于只有一个集合的场景,返回的是对每一个元素的进行的转换之后的操作
val rdd=sc.makeRDD(List("hello spark","hello hive"))
sc.map(
i=>(i,1)
).collext().foreach(println)
//得到结果为:
(hello spark,1)
(hello hive,1)
如上图所示仅仅依靠map方法无法得到下图所示数据
(hello,1)
(spark,1)
(hello,1)
(hive,1)
flatMap的话就可以了,并且还可以对集合中的每个元素进行业务操作,返回的是一个可迭代的集合
val rdd=sc.makeRDD(List("hello spark","hello hive"))
sc.flatMap(
line=>{
line.spilt(" ")
}
)
//得到结果为:
hello
spark
hello
hive