二、SparkCore
第1章 RDD概述 1.1 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式 数据集 ,是Spark中最基本的数据(计算)抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。 分布式:数据的来源 数据集:数据的类型&计算类型的封装(数据模型) 弹性: 不可变:计算逻辑不可变 可分区:提高数据处理能力 并行计算:多任务同时执行 1.2 RDD的属性 一组分区(Partition),即数据集的基本组成单位; 一个计算每个分区的函数; RDD之间的依赖关系; 一个Partitioner,即RDD的分片函数; 一个列表,存储存取每个Partition的优先位置(preferred location)。 1.3 RDD特点 RDD表示 只读 的分区的数据集,对RDD进行改动,只能通过RDD的转换操作,由一个RDD得到一个新的RDD,新的RDD包含了从其他RDD衍生所必需的信息。RDDs之间存在依赖,RDD的执行是按照血缘关系 延时计算 的。如果血缘关系较长,可以通过持久化RDD来切断血缘关系。 1.3.1 分区 RDD逻辑上是分区的,每个分区的数据是抽象存在的,计算的时候会通过一个 compute 函数得到每个分区的数据**。 如果RDD是通过已有的文件系统构建,则compute函数是 读取指定文件系统中的数据 ,