您的位置:首页 > 其它

Spark核心--RDD

2017-01-12 21:59 190 查看

RDD

RDD(Resilient Distributed Datasets)即弹性分布式数据集,它是Spark的核心概念,我们从以下几点来理解它:

1. RDD由多个Partition构成,是分布在集群中的只读对象的集合。

2. RDD存储在磁盘或内存中,Spark提供了多种RDD缓存级别。

3. RDD可通过并行”转换”操作进行构造。

4. RDD失效后会自动重构。

如下图所示,RDD有三个分片,分片1存储在节点1的内存里,分片2存储在节点2的内存里,分片3存储在节点2的磁盘上。



RDD基本操作–Transformation & Action

Transformation操作是指通过程序集合或者Hadoop数据集构造一个新的RDD,即通过已有的RDD产生新的RDD。Action操作是指通过RDD计算而得到一个值或者一组值。



Transformation接口定义:RDD[X] -> RDD[Y]

Action接口定义:RDD[X] -> Z (Z不是一个RDD, 可能是基本类型或数组等)

更多的接口定义如下:



惰性执行

这里要强调一点,Transformation只会记录RDD转化关系,并不会触发计算;Action才是触发程序执行的算子。

我们结合下图再解释下,RDD1通过Map(+1)的Transformation操作,新生成了RDD2,此时还没有触发计算。当RDD2执行saveAsTextFile的Action操作时,程序才触发执行,并将结果以文本文件的形式保存到了存储介质上。



RDD cache/persist

Spark提供了RDD缓存机制,它允许将RDD缓存到内存中或磁盘上,以便重用。Spark提供了多种缓存级别, 以便于用户根据实际需求进行设置。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息