Spark RDD的特性

  • 一组分区
            分区可以看成是数据集的基本组成单位。对于RDD来说,每个分区都会被一个计算任务处理,决定了并行计算的粒度。
  • 计算每个分区的函数
            Spark RDD的计算都是以分片为单位的,每个RDD都会实现compute函数以达到此目的。
  • 与其他RDD之间的依赖关系(血统|血缘)
            RDD每次转换都会产生一个新的RDD,RDD之间会形成依赖关系,此关系被称为血缘或者血统。当计算过程中,如果某个分区的数据丢失,RDD会根据依赖关系重新计算丢失数据分区的数据,而不是重新计算所有分区的数据。
  • 存储键值对的RDD,有一个可选的分区器
            对于存储k-v键值对的RDD,会有一个Partitioner,Partitioner不但决定了RDD的分区的数量,也决定了shuffle时输出的分区数量。
  • 存储每个切片优先位置的列表
            Spark的理念是“移动数据不如移动计算”,Spark在任务调度的时候,会尽可能将计算任务分配到要处理的数据所在的节点。

猜你喜欢

转载自blog.csdn.net/FlatTiger/article/details/114916492