rdd:Resilient Distributed Dataset 弹性式分布数据集
特点如下:
1. A list of parttitions
一系列的分片:比如64M一片 类似hadoop中的split
2.A function for computing each split
每个分片上都有一个函数去迭代/执行/计算它
3.A list of dependencies on other RDDs
一系列的依赖 RDDa 转换成RDDb RDDb转换成RDDc 那么RDDc就依赖RDDb RDDb就依赖RDDa
4. optionally ,a partitioner for key-value Rdds
对于key-value的RDD可指定一个partitioner 告诉他如何分片 常用的有hash 和range
5.optionally, a list of preferred locations to compute each split on
要运行的计算、执行最好在哪个机器上运行,数据的本地性
比如 hadoop默认备份三个位置,spark cache到内存是可能通过storageLevel 设置了多个副本 所以一个partition可能返回多个最佳位置