创建RDD的方式
第一种:通过并行化的方式创建RDD
val arr = Array(1,2,3,4,5,6,7)
val rdd = sc.paralleize(arr,4) //并行化程度是4
//默认是根据集群的情况来设置分区,建议一个cpu分2-4个partition
第二种方式:使用本地文件或者HDFS创建RDD
textfile来读取文件创建RDD,默认情况下每一个Block创建一个partition,分区只能比block多
第三种方式:使用其他的RDD生成RDD
RDD持久化
可以将RDD持久化到内存中,只需要调用cache()或者persist()方法即可
unpersist方法是清除缓存
持久化策略:
StorageLevel[
Memory_Only //只有内存 默认情况
memory_AND_disk //内存和磁盘
MEMORY_ONLY_SER //内存的序列化存储
MEMORY_ADN_DISK_SER //内存和磁盘的序列化存储
DISK_ONLY //磁盘存储
MEMORY_ONLY_2 //表示会存储两份,另一份是备份
]
以下的这几种方式不建议使用:
memory_AND_disk //内存和磁盘
MEMORY_ONLY_SER //内存的序列化存储
MEMORY_ADN_DISK_SER //内存和磁盘的序列化存储
DISK_ONLY //磁盘存储
还不如从新计算一次