RDD是什么
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。
➢ 弹性
存储的弹性:内存与磁盘的自动切换;
容错的弹性:数据丢失可以自动恢复;
计算的弹性:计算出错重试机制;
分片的弹性:可根据需要重新分片。
➢ 分布式:数据存储在大数据集群不同节点上
➢ 数据集:RDD 封装了计算逻辑,并不保存数据
➢ 数据抽象:RDD 是一个抽象类,需要子类具体实现
➢ 不可变:RDD 封装了计算逻辑,是不可以改变的,想要改变,只能产生新的 RDD,在新的 RDD 里面封装计算逻辑
RDD分类
RDD可以分为Transformation转换算子和action行动算子
【Transformation】转换算子
返回的是一个新的RDD,所有的Transformation函数都是封装的RDD的转换方式,函数都是不会立即执行,返回值时一个新的RDD,需要Action行动算子触发计算,如map,flatMap
【Action】行动算子
Action是行动算子,触发RDD的计算,返回值不是RDD,实际开发中一般返回值是其他类型或者无返回值。所有的action函数都是立即执行,比如count,first,collect,take等