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垃圾回收机制
|
存储 大数据 关系型数据库
【数据库三大范式】让我们来聊一聊数据库的三大范式和反范式设计
数据库三大范式是指数据库设计中的规范化原则,它们分别是第一范式(1NF)第二范式(2NF)和第三范式(3NF)。第一范式(1NF)第二范式(2NF)第三范式(3NF)
|
编解码 缓存 算法
【计算机图形学】期末复习,选择题+判断题篇
【计算机图形学】期末复习,选择题+判断题篇
|
机器学习/深度学习 人工智能 达摩院
2442 个专业术语!人工智能术语库 AITD 更新至 3.1 版
2442 个专业术语!人工智能术语库 AITD 更新至 3.1 版
3985 0
|
3天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1089 152