spark - RDD梳理

starksummer 2018-03-19

1.RDD是什么?

RDD源码中的五个特性:弹性的,分布式的,不可变的,支持并行化操作,可以分区的数据集

五个主要属性:

  • 1个rdd可以有多个partition
  • 如果对1个rdd作用于一个function,其实是对里面的每个split做function,1个split就是一个partition
  • rdd间是有一系列依赖的,例如:

spark - 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等

相关推荐