栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark杂谈(map和flatmap的区别 怎样把rdd的结果存储)

Spark杂谈(map和flatmap的区别 怎样把rdd的结果存储)

map和flatmap的区别

在正式介绍之前先看几个典型的rdd编程的案例,很基本的那种

这是读取的数据并输出出来,这些是基本的rdd语句,特别要主义的是读取本地文件时要用///三个并且用引号引起来,不然会报错。

先讲一下map和flatmap是非常相似的,但是flatmap每个输入的元素都会映射到0个或多个输出结果上,但是map就没有必要。

看一下具体的案例

map

flatmap

 有个很形象的说法就是,flat是拍扁的意思,map只是把一行的单词以特定的形式分开(具体根据.split()是什么)并把每一行存在一个列表里,flat是把每个列表都拍碎,把每个元素都得到。

 

 这是原理图,摘自厦门大学数据实验室。

存储

输出文本文件也相当简单。saveAsTextFile(outputFile) 方法接收一个路径,并将RDD 中的内容都输入到路径对应的文件中。Spark 将传入的路径作为目录对待,会在那个目录下输出多个文件。这样,Spark 就可以从多个节点上并行输出了。在这个方法中,我们不能控制数据的哪一部分输出到哪个文件中,不过有些输出格式支持控制。

 将结果写入result文件中,repartition(1)的作用是让结果合并到一个文件中,不加的话会结果写入到两个文件

 执行结果如上图,里面的执行结果类似于Hadoop的执行结果,千万注意不要设置已经有的路径作为输出结果,这一点和Hadoop也一样

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/747471.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号