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

相关文章
|
数据建模 计算机视觉
SiMBA:基于Mamba的跨图像和多元时间序列的预测模型
微软研究者提出了SiMBA,一种融合Mamba与EinFFT的新架构,用于高效处理图像和时间序列。SiMBA解决了Mamba在大型网络中的不稳定性,结合了卷积、Transformer、频谱方法和状态空间模型的优点。在ImageNet 1K上表现优越,达到84.0%的Top-1准确率,并在多变量长期预测中超越SOTA,降低了MSE和MAE。代码开源,适用于复杂任务的高性能建模。[[论文链接]](https//avoid.overfit.cn/post/c21aa5ca480b47198ee3daefdc7254bb)
2115 3
|
Java 数据安全/隐私保护 Sentinel
面试官:Sentinel是如何实现限流的?
面试官:Sentinel是如何实现限流的?
1668 1
|
缓存 负载均衡 Dubbo
Sentinel 集群限流设计原理
Sentinel 集群限流设计原理
Sentinel 集群限流设计原理
|
安全 NoSQL 关系型数据库
使用cnpm搭建企业内部私有NPM仓库
cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题。
1151 0
使用cnpm搭建企业内部私有NPM仓库
|
Apache 流计算
【Flink】Flink的三种时间语义
【4月更文挑战第19天】【Flink】Flink的三种时间语义
|
4月前
|
存储 安全 网络协议
错误代码0x80070005解决办法
针对Windows系统错误代码0x80070005(访问被拒绝错误),以下是综合解决方案:
|
JavaScript 前端开发 索引
如何给组件的元素添加事件监听器?
在组件的元素上添加事件监听器,可以通过在元素上使用 `@事件名` 的语法来实现。例如,`@click="handleClick"` 表示当元素被点击时,会触发 `handleClick` 方法。
|
运维 测试技术 Linux
关于Stress 压力测试工具的介绍与使用
在日益复杂的计算环境中,保证系统的稳定性和性能成为了每个Linux管理员的核心任务。面对不断增长的数据量和业务需求,如何有效评估系统极限和潜在瓶颈? 压力测试工具:stress,成为了不可或缺的助手。这篇记录描述stress工具的使用方法及其在模拟真实负载中的实用性。
关于Stress 压力测试工具的介绍与使用
|
分布式计算 Serverless 数据处理
|
负载均衡 监控 Java
Sentinel介绍与使用
Sentinel介绍与使用
978 3