您的位置:首页 > 其它

Spark问题笔记5

2015-10-05 22:03 190 查看
对于文本文件,在Spark中,一行就是一条记录,若干条记录组成一个集合。我们
原来的算法直接在每一行上进行计算,就不行了。需要先构建数据集,然后通过数据集的操作,
实现我们的目的。

将数据载入并构造数据集

在Spark中,这个数据集被称为`RDD` :弹性分布数据集。
对数据集进行map操作

将原始记录映射为新的记录,并返回一个新的RDD。
对map后的数据集进行collect操作,获得合并的结果

collect操作提取RDD中的全部数据到本地。

Spark的RDD自动进行数据的切分和结果的整合。Spark提供了80多种操作符对集合进行操作。

SparkContext对象代表整个Spark集群,是Spark框架功能的入口,可以用来在集群中创建RDD、累加器变量和广播变量。
SparkContext对象创建时可以指明连接到哪个集群管理器上,在Spark-Shell启动时,默认连接到本地的集群管理器。

Spark的核心抽象是一个分布式数据集,被称为弹性分布数据集(RDD) ,代表一个不可变的、可分区、可被并行处理 的成员集合。

RDD对象需要利用SparkContext对象的方法创建,Spark支持从多种来源创建RDD对象,比如:从本地文本文件创建、从Hadoop 的HDFS文件创建、或者通过对其他RDD进行变换获得新的RDD。
RDD的内部实现了分布计算的功能,我们在RDD上执行的操作,是透明地在整个集群上执行的。也就是说,当RDD建立
后,这个RDD就不属于本地了,它在整个集群中有效。当在RDD上执行一个操作,RDD内部需要和集群管理器进行沟通协商。对一个RDD可以进行两种操作:动作(action)和变换(transformation)。动作总是从集群中取回数据,变换总是获得一个新的RDD,这是两种操作的字面上的差异。在RDD上执行一个变换时,RDD仅仅记录要做的变换,只有当RDD上需要执行一个动作时,RDD才
通过集群管理器启动实质分布计算。

在使用Spark时,最好在脑海中明确地区隔出两个区域:本地域和集群域。RDD属于集群域,那是Spark管辖的地带;
RDD的动作结果属于本地域,这是我们的地盘。只有当RDD的数据返回本地域,我们才能进行再加工,比如打印等等。
http://www.hubwiz.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: