RDD概念:
RDD是只读的,分区记录的集合
RDD支持基于工作集的应用,同时具有数据流模型的特点:
自动容错
位置感知性调度
可伸缩性
速度快的原因:RDD允许用户在执行多个查询时显式的将工作集缓存在内存中,后续的查询能够重用工作集
RDD的5个主要属性
1.一组分片(Partition),数据集的基本组成单位.
每个Partition都会被逻辑映射成BlockManager的一个Block,
而这个Block会被一个Task负责计算。
2.一个计算每个分区的函数compute
3.RDD之间的依赖关系。
在部分数据丢失时,Spark可以通过依赖关系重新计算丢失的分区数据
4.RDD的分片函数-Partitioner
目前两种类型分片函数:HashPartitioner和RangePartitioner
5.存储每个Partition位置的列表
RDD的创建
1.由一个已经存在的Scala集合创建
2.外部存储系统的数据集创建
RDD支持两种操作:
1.转换(transformation):从现有的数据集创建一个新的数据集
常见的如:map filter flatmap mapPartitions
2.动作(action):在数据集上进行计算后,返回一个值给Driver程序
常见的如:reduce collect count saveAsTextFile
RDD是只读的,分区记录的集合
RDD支持基于工作集的应用,同时具有数据流模型的特点:
自动容错
位置感知性调度
可伸缩性
速度快的原因:RDD允许用户在执行多个查询时显式的将工作集缓存在内存中,后续的查询能够重用工作集
RDD的5个主要属性
1.一组分片(Partition),数据集的基本组成单位.
每个Partition都会被逻辑映射成BlockManager的一个Block,
而这个Block会被一个Task负责计算。
2.一个计算每个分区的函数compute
3.RDD之间的依赖关系。
在部分数据丢失时,Spark可以通过依赖关系重新计算丢失的分区数据
4.RDD的分片函数-Partitioner
目前两种类型分片函数:HashPartitioner和RangePartitioner
5.存储每个Partition位置的列表
RDD的创建
1.由一个已经存在的Scala集合创建
2.外部存储系统的数据集创建
RDD支持两种操作:
1.转换(transformation):从现有的数据集创建一个新的数据集
常见的如:map filter flatmap mapPartitions
2.动作(action):在数据集上进行计算后,返回一个值给Driver程序
常见的如:reduce collect count saveAsTextFile