三,深入RDD
RDD本身是一个抽象类,具有很多具体的实现子类:
RDD都会基于Partition进行计算:
默认的Partitioner如下所示:
其中HashPartitioner的文档说明如下:
另外一种常用的Partitioner是RangePartitioner:
RDD在持久化的需要考虑内存策略:
Spark提供很多StorageLevel可供选择:
于此同时Spark提供了unpersistRDD:
对RDD本身还有一个非常重要的CheckPoint操作:
其中doCheckpoint的细节如下:
以NewHadoopRDD为例,其内部的信息如下所示:
以WholeTextFileRDD为例,其内部的信息如下所示:
RDD在产生作业调用的时候,经典的过程如下所示: