一.、RDD概述
- - RDD 是 Spark提供的最重要的抽象概念,它是一种有容错机制的特殊数据集合,可以分布在集群的结点上,以函数式操作集合的方式进行各种并行操作。
- - RDD 是 Spark 的计算模型。RDD(Resilient Distributed Dataset)叫做弹性的分布式数据集合,是Spark 中最基本的数据抽象,它代表一个不可变、只读的,被分区的数据集。操作 RDD就像操作本地集合一样,有很多的方法可以调用,使用方便,而无需关心底层的调度细节。
RDD 的转换操作是返回新的 RDD 的操作。
| 函数名 | 作用 | 示例 | 结果 |
|---|---|---|---|
| map() | 将函数应用于 RDD 的每个元素,返回值是新的 RDD | rdd1.map(x=>x+l) | {2,3,4,4} |
| flatMap() | 将函数应用于 RDD 的每个元素,将元素数据进行拆分,变成迭代器,返回值是新的 RDD | rdd1.flatMap(x=>x.to(3)) | {1,2,3,2,3,3,3} |
| filter() | 函数会过滤掉不符合条件的元素,返回值是新的 RDD | rdd1.filter(x=>x!=1) | {2,3,3} |
| distinct() | 将 RDD 里的元素进行去重操作 | rdd1.distinct() | (1,2,3) |
| union() | 生成包含两个 RDD 所有元素的新的 RDD | rdd1.union(rdd2) | {1,2,3,3,3,4,5} |
行动操作用于执行计算并按指定的方式输出结果。
| 函数名 | 作用 | 实例 |
|---|---|---|
| collect() | 返回RDD的所有元素 | rdd.collect() |
| count() | RDD 里元素的个数 | rdd.count() |
| take(num) | 从 RDD 中返回 num 个元素 | rdd.take(2) |
| reduce() | 并行整合所有 RDD 数据,如求和操作 | rdd.reduce((x,y) => x + y) |
| top(num) | 从 RDD 中,按照默认(降序)或者指定的排序返回最前面的 num 个元素 | rdd.top(2) |



