一、RDD的核心
RDD提供了一个抽象的数据模型,不比担心底层数据的分布式特性,只需将具体的应用逻辑表达为一系列转换操作(函数),不同RDD之间的转换操作之间还可以形成依赖关系,进而实现管道化,从而避免了中间结果的存储,大大降低了数据复制、磁盘IO和序列化开销,并且还提供了更多的API
二、RDD定义
定义
RDD(RESILIENT Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,代表一个不可变、可分区、里面元素可并行计算的集合
- Dataset:一个数据集合,用于存放数据的
- Distributed:RDD中的数据是分布式存储的,可用于分布式计算
- Resilient:RDD中的数据可以存储在内存中或者磁盘中
- 所有的运算以及操作都建立在RDD数据结构的基础之上
- 可以认为RDD是分布式的列表List或数组Array,抽象的数据结构,RDD是一个抽象类Abstract Class和泛型Generic Type
三、RDD数据结构内部特性
1.分区
RDD逻辑上是分区的,每个分区的数据是抽象的,计算的时候会通过一个compute函数得到每个分区的数据