A Resilient Distributed Dataset,即弹性分布式数据集
是Spark中最基本的数据抽象,
说它弹性,是因为这个数据集是不可变的,
能够手动或自动进行内存和磁盘数据存储的切换
能够基于Lineage的高效容错
说它分布式,是因为它的数据是分区存放在各个节点之上,
并可进行并行计算。
RDD有什么特性
共有5大特性
1. A list of partitions:一组分片
在rdd创建的时候,可手动和自动切分地切分分片,分片决定了task并行的数量,基本是one task per partition
2. A functionforcomputingeachsplit:一个计算分区的函数3. A list of dependencies onotherRDDs:即RDD的Lineage
第n个RDD挂了后,可以通过n-1个rdd进行容错复原。
4. Optionally, a Partitioner for key-value RDDs:即PairRDD,通过hash实现
5. Optionally, a list of preferred locations to compute eachspliton
即数据本地化计算,尽可能保证 计算函数 和 数据分区 在同一个node上,从而达到数据本地化计算。