1.RDD是什么?
RDD源码中的五个特性:弹性的,分布式的,不可变的,支持并行化操作,可以分区的数据集
五个主要属性:
- 1个rdd可以有多个partition
- 如果对1个rdd作用于一个function,其实是对里面的每个split做function,1个split就是一个partition
- rdd间是有一系列依赖的,例如:
- (可选)对于(groupbykey)有一个Hashpartition对应于key-value类型的rdd,sortbykey对应一个range-partitioned
- (可选)每个split都有一个优先推荐的locations list (注意这里是复数,why?)
2.RDD的创建方式:
- 从已存在的集合创建,sc.parallize(集合对象,分区数)
- 基于文件创建(本地,hdfs,s3上的文件),如果是本地文件,分布式环境执行的时候,要保证每个机器上都有这个文件
3.spark读写文件api:
sc.textFile
sc.sequenceFile
sc.wholeTextFiles
sc.newAPIHadoop
sc.newAPIHadoopRDD
sc.hadoopRDD
rdd.saveAsObjectFile
4.RDD的基本操作
转换,action等