分类
特点
针对KV类型的数据,Spark提供了什么操作:
键值型数据本质上就是一个二元元组, 键值对类型的 RDD 表示为 RDD[(K, V)]
RDD 对键值对的额外支持是通过隐式支持来完成的, 一个 RDD[(K, V)]
, 可以被隐式转换为一个 PairRDDFunctions
对象, 从而调用其中的方法.
既然对键值对的支持是通过 PairRDDFunctions
提供的, 那么从 PairRDDFunctions
中就可以看到这些支持有什么
类别 | 算子 |
---|---|
聚合操作 | reduceByKey |
foldByKey | |
combineByKey | |
分组操作 | cogroup (不常见) |
groupByKey | |
连接操作 | join |
leftOuterJoin | |
rightOuterJoin | |
排序操作 | sortBy |
sortByKey | |
Action | countByKey |
take | |
collect |
针对数字型的数据、spark提供了什么操作:
对于数字型数据的额外支持基本上都是 Action 操作, 而不是转换操作
算子 | 含义 |
---|---|
count | 个数 |
mean | 均值 |
sum | 求和 |
max | 最大值 |
min | 最小值 |
variance | 方差 |
sampleVariance | 从采样中计算方差 |
stdev | 标准差 |
sampleStdev | 采样的标准差 |
code
@Test
def numberic(): Unit={
val rdd = sc.parallelize(Seq(1, 2, 3, 4, 10, 20, 30, 50, 100))
// 最大值
println(rdd.max()) // 100
// 最小值
println(rdd.min()) // 1
// 平均数
println(rdd.mean()) // 24.444444444444443
// 和
println(rdd.sum()) // 220.0
// ...........
}