rdd,英文全称为:Resilient Distributed Dataset,中文简称“弹性分布式数据集”,spark中最基础的抽象数据结构。
RDD具备分区、不可变、并行操作这三个基本特性,表现形式为不可变的分区元素的集合,并且可以在集群中并行操作。
RDD拥有的特性如下:
1、是一个分区的只读记录的集合;
2. 一个具有容错机制的特殊集;
3. 只能通过在稳定的存储器或其他RDD上的确定性操作(转换)来创建;
4. 可以分布在集群的节点上,以函数式操作集合的方式,进行各种并行操作
另外,每个RDD里都会包括分区信息、依赖关系等等的信息,如下图所示:
a,Partitions
Partitions 就是上面所说的,代表着RDD中数据的逻辑结构。
b,SparkContext
SparkContext是所有Spark功能的入口,可用来创建RDD对象以及在节点中的广播变量等等。
c,SparkConf
SparkConf 是一些配置信息。
d,Partitioner
Partitioner 决定了RDD的分区方式,目前两种主流的分区方式:Hash partioner 和 Range partitioner。
e,Dependencies
Dependencies 也就是依赖关系,记录了该rdd的计算过程。根据每个rdd的分区计算后生成的新的rdd的分区的对应关系,可以分成窄依赖和宽依赖。