Key-Value类型:
23)sortByKey
定义
在一个(K,V)的 RDD 上调用,K 必须实现 Ordered 接口(特质),返回一个按照 key 进行排序
案例演示
运行结果
24)join
定义
在类型为(K,V)和(K,W)的 RDD 上调用,返回一个相同 key 对应的所有元素连接在一起的
(K,(V,W))的 RDD
案例演示
运行结果
25)leftOuterJoin
定义
类似于 SQL 语句的左外连接
案例演示
运行结果
26) cogroup
定义
在类型为(K,V)和(K,W)的 RDD 上调用,返回一个(K,(Iterable<V>,Iterable<W>))类型的 RDD
案例演示
运行结果
RDD行动算子:
行动算子就是会触发action的算子,触发action的含义就是真正的计算数据。
1)reduce
定义
聚集 RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据
案例演示
运行结果
2)collect
定义
在驱动程序中,以数组 Array 的形式返回数据集的所有元素
3) foreach
定义
分布式遍历 RDD 中的每一个元素,调用指定函数
案例演示
运行结果
4)count
定义
返回 RDD 中元素的个数
案例演示
运行结果
5)first
定义
返回 RDD 中的第一个元素
案例演示
运行结果
6)take
定义
返回一个由 RDD 的前 n 个元素组成的数组
案例演示
运行结果
7)takeOrdered
定义
返回该 RDD 排序后的前 n 个元素组成的数组
案例演示
运行结果
8)aggregate
定义
分区的数据通过初始值和分区内的数据进行聚合,然后再和初始值进行分区间的数据聚合
案例演示
运行结果
9)fold
定义
折叠操作,aggregate 的简化版操作
案例演示
运行结果
10) countByKey
定义
统计每种key的个数
案例演示
运行结果
11) save 相关算子
定义
将数据保持到不同格式的文件中
案例演示
运行结果
累加器
原理:累加器用来把 Executor 端变量信息聚合到 Driver 端。在 Driver 程序中定义的变量,在Executor 端的每个 Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后,传回 Driver 端进行 merge。
案例演示
运行结果
自定义累加器实现单词统计
案例演示
运行结果
广播变量
原理:广播变量用来高效分发较大的对象。向所有工作节点发送一个较大的只读值,以供一个
或多个 Spark 操作使用
案例演示
运行结果