SparkCore-基本概述
RDD概述
弹性分布式数据集,Spark中最基本的数据抽象。代码中的是一个抽象类,其代表一个弹性、不可变、可分区、内部元素可并行计算的集合
RDD特点
- 弹性
- 存储:内存与硬盘自动切换,可以存储在内存或者磁盘中
- 计算:数据丢失可以自动恢复
- 容错:计算出错有重试机制
- 分片:可以根据需要重新分片
- 分布式
- 数据存储在大数据集群上的不同节点上
- 数据集,不存储数据
- RDD只是封装了计算逻辑,并不保存数据
- 数据抽象
- RDD是一个抽象类,需要子类具体实现
- 不可变
- RDD封装了计算逻辑,因此其不可变,想要修改,只能产生新的RDD,在新的RDD里面封装新的计算逻辑
- 可分区,并行计算
RDD特性
- 分区列表
- 数据集的基本组成单位,标记数据是那个分区
- 计算每个分区的函数
- 分区数据的计算逻辑
- RDD之间依赖关系
- 本RDD需要的数据需要通过那些计算(之前的RDD的计算逻辑)得到
- 分区器
- RDD的分片函数,控制分区的数据流向
- 块优先位置
- 存储每个分区器的优先位置,尽量是计算向数据靠拢(除非机器上的计算资源不足以支持本次计算)