RDD 到底是什么--(视频笔记)
1、RDD 只读的分区数据集合。
2、RDD的依赖关系,生成RDD的血统。
3、RDD支持基于工作集的运用。可以显性的将数据存储在内存中,可以支持高效数据重用。
4、RDD是分布式数据编程的一种抽象
5、RDD的特征
a list of partitions(hdfs的一个分片就是一个partition,每个分片就是一个task;spark rdd是被分区的,
对于RDD来说,每个分区都会被一个计算任务处理,并决定并行计算的粒度,RDD的每次转换操作都会声称新的RDD,
在生成RDD时候,一般可以只定分区的数量,如果不指定分区的数量,当RDD从集合创建时,则默认为改程序做分配的资源的cpu核数,
如果是从HDFS文件创建,则默认为文件的block数)
RDD并行是从父类传递到子类的
a function for computing each split
每一个computing类似一个MR,只是MR写磁盘,RDD将多步的computing合并成一个。
通过block manager来获取数据,具体的split都会被映射成block manager的block。
a list of dependencies on other RDDs
partitioner for key-value RDDs
hash partitioner和range partitioner。针对的key-value的方式。
partitioner决定后续并行分片数量。
a list of prefered location to each split on
spark 会尽可能将计算任务分配到数据所在机器。
RDD的操作
transformation(......)
action (count,collect,reduce,lookup,save)