spark学习记录(二、RDD)

一、概念

RDD(Resilient Distributed Dataset)叫做弹性分布式数据集是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。

RDD的五大特性:

  1. RDD是由一系列的partition组成
  2. 算子(函数)作用在partition上
  3. RDD之间是有依赖关系,某一个RDD丢失时,可以基于依赖关系重新生成
  4. 分区器是基于K,V格式的RDD
  5. partition对外提供一系列最佳的计算位置,利于数据处理的本地化

补充:

  1. 如果RDD中的每个元素是一个个二元组,那么这个RDD就是K,V格式 
  2. sc.textFile():Spark没有直接读取hdfs文件的方法,textFile()的底层调用的是MR读取HDFS的方法,首先会切分,每一块默认大小为128m,就是一个block大小,每一块对应一个partition
  3. 一个partition只能由一个task处理
  4. partition的个数可根据数据量多少而改变,即可分割,合并。启动进程需要时间,所以数据量大时将数据分成多进程处理,但数据量小时,合并partition,减少分区
  5. partition分布在多个节点上处理
  6. RDD中是不存数据的,partition中也不存数据

猜你喜欢

转载自blog.csdn.net/qq_33283652/article/details/85337323