聚合操作_多维聚合_GroupedDataset | 学习笔记

简介: 快速学习聚合操作_多维聚合_GroupedDataset

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段聚合操作_多维聚合_GroupedDataset】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/690/detail/12094


聚合操作_多维聚合_GroupedDataset

 

多维聚合

 

之前的课程中介绍了三个算子,第一个 groupby,第二个 rollup,第三个是 cube。

接下来,我们要了解一个小知识点:,无论是 groupby 还是 rollup、cube,在调用这三个算子时,它们都返回了一个数据类型叫做 relationalGroupedDataset

Relational 是有关系;Grouped,是分过组的;

这三个算子返回的并不是 dataframe,可以理解为是转换算子,但是并不是生成 dataset,而是生成了 relationalGroupedDataset。

 

image.png

这三个算子,它们生成的数据集中有什么内容?怎么创建出的数据集?这个数据集有什么用的?

1.GroupedDataset

常见的 RelationalGroupedDataset 获取方式有三种:

groupBy、rollup、cube

valrgd:RelationalGroupedDataset= df.groupBy/df.rollup/df.cube

大家以往看到的是进行 df.groupby.agg.min.max 这些操作,agg/min/max 是 rgd 的。

RelationalGroupedDataset 是想告诉用户,开发者,通过 group 创建出来的并不是一个 dataframe,是一个分过组的数据集。要对这个数据集来进行排序才行,在比较严格的 sql 模式下,写不出 select source,year from…group by source, year 这样的代码。在正常情况下写这种代码的话是有一点问题的,就是在 circle 语句当中,如果出现 group,前面一定有聚合,要注意这一点。

无论通过任何一种方式获取了 RelationalGroupedDataset 对象,其所表示的都是是一个被分组的 DataFrame ,通过这个对象,可以对数据集的分组结果进行聚合.

val groupedDF: RelationalGroupedDataset = pmDF. groupBy ( ' year)

需要注意的是, RelationalGroupedDataset 并不是 DataFrame ,所以其中并没有 DataFrame 的方法,只有如下一些聚合相关的方法,如下这些方法在调用过后会生成 DataFrame 对象,然后就可以再次使用 DataFrame 的算子进行操作了

 

操作符

解释

avg

求平均数

count

求总数

max

求极大值

min

求极小值

Mean

求均数

sum

求均数求和

agg

聚合,可以使用 sql.functions 中的函数来配合进行操作

pmDF. groupBy ( ' year)

.agg(avg( "pm)as "pm_avg")


注意:

使用 groupby、rollup、cube 这三个算子生成的并不是 dataframe,也不是 dataset,而是一个分过组的数据集。

相关文章
|
6天前
|
数据可视化 Python
如何在Pandas中对数据集进行多级分组并进行聚合计算?
在Pandas中进行多级分组与聚合计算的步骤包括导入库(如pandas和matplotlib),准备数据集,使用`groupby()`方法分组,应用聚合函数(如`sum()`、`mean()`)及可视化结果。
20 11
|
11月前
|
分布式计算 算法 大数据
白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
68 0
|
大数据 开发者
聚合操作_多维聚合_需求介绍 | 学习笔记
快速学习聚合操作_多维聚合_需求介绍
68 0
聚合操作_多维聚合_需求介绍 | 学习笔记
|
SQL 分布式计算 大数据
聚合操作_多维聚合_cubeSQL | 学习笔记
快速学习聚合操作_多维聚合_cubeSQL
96 0
聚合操作_多维聚合_cubeSQL | 学习笔记
|
大数据 开发者
聚合操作_多维聚合_cube | 学习笔记
快速学习聚合操作_多维聚合_cube
59 0
聚合操作_多维聚合_cube | 学习笔记
|
分布式计算 大数据 Spark
聚合操作_多维聚合_rollup 案例 | 学习笔记
快速学习聚合操作_多维聚合_rollup 案例
58 0
聚合操作_多维聚合_rollup 案例 | 学习笔记
|
大数据 开发者
聚合操作_多维聚合_rollup | 学习笔记
快速学习聚合操作_多维聚合_rollup
71 0
聚合操作_多维聚合_rollup | 学习笔记
|
大数据 开发者
聚合操作_多维聚合_编写代码 | 学习笔记
快速学习聚合操作_多维聚合_编写代码
87 0
聚合操作_多维聚合_编写代码 | 学习笔记
|
SQL 分布式计算 Java
聚合操作_groupBy_聚合操作 | 学习笔记
快速学习聚合操作_groupBy_聚合操作
98 0
聚合操作_groupBy_聚合操作 | 学习笔记
|
存储 SQL
ES聚合查询详解(三):指标聚合
ES聚合查询详解(三):指标聚合
281 0
ES聚合查询详解(三):指标聚合