RDD 入门_ReduceByKey 算子|学习笔记

简介: 快速学习 RDD 入门_ReduceByKey 算子

开发者学堂课程【大数据 Spark2020最新课程(知识精讲与实战演练)第一阶段RDD 入门_ReduceByKey 算子】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/688/detail/11955


RDD 入门_ReduceByKey 算子


ReduceByKey 算子

主要作用:

首先按照 Key 分组,接下来把整组的 Value 计算出一个聚合值,这个操作与 mapreduce 中的 reduce 高度相似。

调用:

Def reduceByKey(func:(V,V)-V):RDD[(K,V)]

image.png假设其中传递的函数为:

reduceByKey(curr,agg)=>curr+agg ,入口的 RDD1 ,即最终想得到的 RDD1 ,出口 RDD2,即最终输出的 RDD2,ByKey 指按照 K 进行归约,该条件约束规则为 RDD1 中需要是二院元组,代表 KeyValue 型数据。

执行过程:

首先分组,然后通过算子进行 reduce ,对每个组进行 reduce ,第一组得到 agg =0,curr =1,agg (局部结果)更新,以此类推得到四组结果。

代码编写如下:

@Test

def reduceByKeyTest():Unit ={

//1.创建 RDD

val rdd1 = sc. parallelize(Seq(“Hello lily”, “Hello lucy”,

“Hello tim”))

//2.处理数据

val rdd2 = rdd1.flatmap (item =>item.split (regex= “”))

map(item =>(item,1))

reduceByKey((curr,agg)=>curr+agg)

//3.得到结果

val result = rdd2.collect()

result.foreach(item=>println(item))

//4.关闭 sc

sc.stop()

}

运行结果如图所示:

image.png

总结:

ReduceByKey 第一步先按照 Key 分组,然后对每一组进行聚合,得到结果。

Spark 总述如图所示:

image.png

相关文章
|
2月前
|
分布式计算 Spark
[Spark精进]必须掌握的4个RDD算子之flatMap算子
[Spark精进]必须掌握的4个RDD算子之flatMap算子
63 0
|
2月前
|
分布式计算 Scala Spark
[Spark精进]必须掌握的4个RDD算子之map算子
[Spark精进]必须掌握的4个RDD算子之map算子
46 0
|
12月前
|
分布式计算 数据处理 Spark
RDD 中 groupByKey 和 reduceByKey 哪个性能好,为什么?
RDD 中 groupByKey 和 reduceByKey 哪个性能好,为什么?
86 0
|
12月前
|
分布式计算
|
分布式计算 大数据 开发者
Rdd 算子_转换_groupbykey | 学习笔记
快速学习 Rdd 算子_转换_groupbykey
120 0
Rdd 算子_转换_groupbykey | 学习笔记
|
分布式计算 大数据 开发者
RDD 入门_FlatMap 算子|学习笔记
快速学习 RDD 入门_FlatMap 算子
303 0
RDD 入门_FlatMap 算子|学习笔记
|
分布式计算 大数据 开发者
RDD 入门_Map 算子|学习笔记
快速学习 RDD 入门_Map 算子
107 0
RDD 入门_Map 算子|学习笔记
|
分布式计算 算法 大数据
Rdd 算子_转换_mapvalues | 学习笔记
快速学习 Rdd 算子_转换_mapvalues
107 0
Rdd 算子_转换_mapvalues | 学习笔记
|
分布式计算 大数据 Spark
Rdd 算子_转换_回顾 | 学习笔记
快速学习 Rdd 算子_转换_回顾
56 0
Rdd 算子_转换_回顾 | 学习笔记
|
分布式计算 大数据 开发者
RDD 算子_转换_ aggregateByKey | 学习笔记
快速学习 RDD 算子_转换_ aggregateByKey
93 0
RDD 算子_转换_ aggregateByKey | 学习笔记