聚合操作_多维聚合_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,而是一个分过组的数据集。

目录
打赏
0
0
0
0
127
分享
相关文章
SQL基础——聚合与排序(下)
SQL基础——聚合与排序(下)
181 0
SQL基础——聚合与排序(上)
SQL基础——聚合与排序(上)
86 0
白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
白话Elasticsearch45-深入聚合数据分析之易并行聚合算法,三角选择原则,近似聚合算法
121 0
ES聚合查询详解(四):管道聚合
ES聚合查询详解(四):管道聚合
591 0
ES聚合查询详解(四):管道聚合
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等