在正式介绍之前先看几个典型的rdd编程的案例,很基本的那种
这是读取的数据并输出出来,这些是基本的rdd语句,特别要主义的是读取本地文件时要用///三个并且用引号引起来,不然会报错。
先讲一下map和flatmap是非常相似的,但是flatmap每个输入的元素都会映射到0个或多个输出结果上,但是map就没有必要。
看一下具体的案例
map
flatmap
有个很形象的说法就是,flat是拍扁的意思,map只是把一行的单词以特定的形式分开(具体根据.split()是什么)并把每一行存在一个列表里,flat是把每个列表都拍碎,把每个元素都得到。
这是原理图,摘自厦门大学数据实验室。
存储输出文本文件也相当简单。saveAsTextFile(outputFile) 方法接收一个路径,并将RDD 中的内容都输入到路径对应的文件中。Spark 将传入的路径作为目录对待,会在那个目录下输出多个文件。这样,Spark 就可以从多个节点上并行输出了。在这个方法中,我们不能控制数据的哪一部分输出到哪个文件中,不过有些输出格式支持控制。
将结果写入result文件中,repartition(1)的作用是让结果合并到一个文件中,不加的话会结果写入到两个文件
执行结果如上图,里面的执行结果类似于Hadoop的执行结果,千万注意不要设置已经有的路径作为输出结果,这一点和Hadoop也一样



