RDD 算子_ Action _ countByKey | 学习笔记

简介: 快速学习 RDD 算子_ Action _ countByKey

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

课程地址:https://developer.aliyun.com/learning/course/689/detail/11982


RDD 算子_ Action _ countByKey


内容介绍

一、前言

二、实例讲解

三、小结


一、前言

接下来我们介绍两个算子,都用于求数量,叫做 count countByKey count是直接用于求数量,与 count 函数相似, countByKey 是按照 Key 分组,求每一个组数量。求数量是一个非常常见的日常需求,接下来让大家了解一下 count countByKey 的使用。


二、实例讲解

进入代码,创建新方法和集合,创建 RDD ,编写一个简单的集合,

print 调用 count ,求出结果,代码如下:

@Test

def count(): Unit = {

val rdd = sc.parallelize(Seq(("a",1),("b",2),("c",3),("d",4)))

println(rdd.count())

}

如果想求每一个 Key 出现的次数,可做小小的修改,代码如下:

@Test

def count(): Unit = {

val rdd = sc.parallelize(Seq(("a",1),("a",2),("c",3),("c",4)))

println(rdd.count())

println(rdd.countByKey())

}

运行后查看结果,第一个结果, count求出了数据的总数,第二个结果为 countByKey 的返回值,是一个 map 型的数据,第一个元素是原始数据集中的 Key ,第二个元素是 Key 出现的次数。

1.png

 

三、小结

我们通过运行结果来总结一下。 count 和  countByKey 的运行结果相距较远,在他们的位置处各有一个 job 运行。每调用一次 Action 会生成一个 job ,它会单独调度执行,获取结果。相距较远,中间出现大量的 Log ,是在重新启动job 。这是它的第一个特点。

第二个特点, countByKey 的运算结果是 Map 型的数据。有一个概念叫做数据倾斜,可以通过 countByKey 查看 Key 对应的数据数量,从而解决倾斜问题。这就是 count countByKey

相关文章
|
分布式计算 Java Hadoop
Hadoop垃圾回收机制
Hadoop垃圾回收机制
|
存储 前端开发 JavaScript
家居建材商城|基于Springboot+Vue实现家居建材商城
家居建材商城|基于Springboot+Vue实现家居建材商城
204 1
|
Kubernetes 负载均衡 监控
记一次k8s压测发生SLB 499的串流问题
对k8s集群中的pod进行压测,压测方式是直接访问k8s前的SLB, 压测表现是 SLB (CLB 7层监听)偶发返回499报错。 最终确认问题根因是五元组复用导致串流。 关键词: 偶发499 、压测、k8s
2038 4
记一次k8s压测发生SLB 499的串流问题
|
消息中间件 人工智能 Apache
Apache RocketMQ 中文社区全新升级!
RocketMQ 中文社区升级发布只是起点,我们将持续优化体验细节,推出更多功能和服务,更重要的是提供更多全面、深度、高质量的内容。
900 102
|
11月前
|
人工智能 Kubernetes 云计算
第五届CID大会成功举办,阿里云基础设施加速AI智能产业发展!
第五届中国云计算基础架构开发者大会(CID)于2024年10月19日在北京成功举办。大会汇聚了300多位现场参会者和超过3万名在线观众,30余位技术专家进行了精彩分享,涵盖高效部署大模型推理、Knative加速AI应用Serverless化、AMD平台PMU虚拟化技术实践、Kubernetes中全链路GPU高效管理等前沿话题。阿里云的讲师团队通过专业解读,为与会者带来了全新的视野和启发,推动了云计算技术的创新发展。
|
安全 Java 数据库连接
Java报错javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer‘s close_notify解决方法
Java报错javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer‘s close_notify解决方法
Java报错javax.net.ssl.SSLException MESSAGE: closing inbound before receiving peer‘s close_notify解决方法
|
存储 大数据 关系型数据库
【数据库三大范式】让我们来聊一聊数据库的三大范式和反范式设计
数据库三大范式是指数据库设计中的规范化原则,它们分别是第一范式(1NF)第二范式(2NF)和第三范式(3NF)。第一范式(1NF)第二范式(2NF)第三范式(3NF)
|
编解码 缓存 算法
【计算机图形学】期末复习,选择题+判断题篇
【计算机图形学】期末复习,选择题+判断题篇
|
算法
【单目标优化算法】蜣螂优化算法(Dung beetle optimizer,DBO)(Matlab代码实现)
【单目标优化算法】蜣螂优化算法(Dung beetle optimizer,DBO)(Matlab代码实现)
600 0
|
定位技术
ENVI自动批量生成地面控制点实现栅格遥感影像自动地理配准
ENVI自动批量生成地面控制点实现栅格遥感影像自动地理配准
299 1