目录
很显然每一行都按照空格拆分成了三行,因此总行数是拆分前的三倍,第一行的内容只剩下原第一行的第一个数据,时间。这样flatMap的作用就很明显了
mapToPairs
scala版本
scala是没有mapToPair函数的,scala版本只需要map就可以了,只有Java才有!!!!!
scala> val lines = sc.textFile("/spark.txt")
scala> val pairs = lines.flatMap(line => line.split(" ")).map(word => (word,1))
scala> words.collect
spark的RDD操作
在上一节Spark经典的单词统计中,了解了几个RDD操作,包括flatMap,map,reduceByKey,以及后面简化的方案,countByValue。那么这一节将介绍更多常用的RDD操作,并且为每一种RDD我们分解来看其运作的情况。
spark的flatMap
flatMap,有着一对多的表现,输入一输出多。并且会将每一个输入对应的多个输出整合成一个大的集合,当然不用担心这个集合会超出内存的范围,因为spark会自觉地将过多的内容溢写到磁盘。当然如果对运行的机器的内存有着足够的信心,也可以将内容存储到内存中。