一. RDD概述
1. 什么是RDD
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。
2. RDD的五大特性
- RDD是由一系列partition组成
- 算子(函数)是作用在RDD的partition上的
- RDD之间有依赖关系
- 分区器是作用在k, v格式的RDD上
- partition提供数据计算的最佳位置, 利于数据处理的本地化. “计算移动, 数据不移动”
3. RDD特点
- RDD表示只读的分区的数据集,对RDD进行改动,只能通过RDD的转换操作,由一个RDD得到一个新的RDD,新的RDD包含了从其他RDD衍生所必需的信息。RDDs之间存在依赖,RDD的执行是按照血缘关系延时计算的。如果血缘关系较长,可以通过持久化RDD来切断血缘关系。
1. 分区
- RDD逻辑上是分区的,每个分区的数据是抽象存在的,计算的时候会通过一个compute函数得到每个分区的数据。
- 如果RDD是通过已有的文件系统构建,则compute函数是读取指定文件系统中的数据
- 如果RDD是通过其他RDD转换而来,则compute函数是执行转换逻辑将其他RDD的数据进行转换。