RDD 叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面元素可并行计算的集合。
RDD五大特性:
- A list of partitions 一个分区列表,RDD中的数据都存在一个分区列表里面。
- A function for computing each split 作用在每一个分区中的函数。
- A List of dependenceies on other RDDs 一个RDD依赖于其他多个RDD,这个点很重要,RDD的容错机制就是依据这个特性而来的。
- Optionally,a Partitioner for key-value RDDs (e.g.to say that the RDD is hash-partitioned)可选的,针对于kv类型的RDD才具有这个特性,作用是决定了数据的来源以及数据处理后的去向。
- Optionally,a list of preferred locations to compute each split on(e.g.block locations for an HDFS file )可选项,数据本地性,数据位置最优。