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

相关文章
|
6月前
|
机器学习/深度学习 分布式计算 数据库连接
[Spark精进]必须掌握的4个RDD算子之filter算子
[Spark精进]必须掌握的4个RDD算子之filter算子
146 2
|
6月前
|
分布式计算 Scala Spark
[Spark精进]必须掌握的4个RDD算子之map算子
[Spark精进]必须掌握的4个RDD算子之map算子
93 0
|
6月前
|
分布式计算 Spark
[Spark精进]必须掌握的4个RDD算子之flatMap算子
[Spark精进]必须掌握的4个RDD算子之flatMap算子
110 0
|
6月前
|
机器学习/深度学习 分布式计算 数据处理
[Spark精进]必须掌握的4个RDD算子之mapPartitions算子
[Spark精进]必须掌握的4个RDD算子之mapPartitions算子
138 0
|
分布式计算 大数据 数据处理
RDD 算子_ Action _ take | 学习笔记
快速学习 RDD 算子_ Action _ take
RDD 算子_ Action _ take | 学习笔记
|
分布式计算 算法 大数据
RDD 算子_ Action _ reduce | 学习笔记
快速学习 RDD 算子_ Action _ reduce
116 0
RDD 算子_ Action _ reduce | 学习笔记
|
分布式计算 大数据 开发者
RDD 算子_ Action _ foreach | 学习笔记
快速学习 RDD 算子_ Action _ foreach
RDD 算子_ Action _ foreach | 学习笔记
|
数据采集 分布式计算 大数据
Rdd 算子_转换_filter | 学习笔记
快速学习 Rdd 算子_转换_filter
107 0
Rdd 算子_转换_filter | 学习笔记
|
分布式计算 大数据 开发者
RDD 算子_转换 join | 学习笔记
快速学习 RDD 算子_转换 join
104 0
RDD 算子_转换 join | 学习笔记
|
分布式计算 大数据 开发者
Rdd 算子_转换_groupbykey | 学习笔记
快速学习 Rdd 算子_转换_groupbykey
144 0
Rdd 算子_转换_groupbykey | 学习笔记