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

相关文章
|
5月前
|
存储 缓存 自然语言处理
elasticsearch 聚合 : 指标聚合、桶聚合、管道聚合解析使用总结
elasticsearch 聚合 : 指标聚合、桶聚合、管道聚合解析使用总结
|
6月前
|
数据挖掘 索引
使用 DataFrame 进行数据聚合与透视:洞察数据深层结构
【5月更文挑战第19天】DataFrame 提供了聚合和透视功能,便于数据分析。通过`groupby`和`agg`计算类别统计信息,如`sum`和`mean`,揭示数据模式。使用`pivot_table`重新排列数据,展示清晰结构。多维度透视和按时间聚合进一步增强分析能力。这些工具帮助我们理解复杂数据,挖掘隐藏规律,为决策提供依据。利用DataFrame进行数据深层分析,解锁数据价值,开启数据探索之旅。
77 2
|
6月前
|
数据可视化 Python
如何在Pandas中对数据集进行多级分组并进行聚合计算?
在Pandas中进行多级分组与聚合计算的步骤包括导入库(如pandas和matplotlib),准备数据集,使用`groupby()`方法分组,应用聚合函数(如`sum()`、`mean()`)及可视化结果。
74 11
|
6月前
|
SQL 搜索推荐 数据库
8. 聚合查询
8. 聚合查询
|
6月前
|
存储 数据挖掘 数据库
InfluxDB的连续查询与数据聚合技术详解
【4月更文挑战第30天】InfluxDB的连续查询(CQ)功能用于自动定时聚合时间序列数据,适用于数据降采样、实时分析和告警通知等场景。CQ使用InfluxQL编写,例如,每1小时对`cpu_usage`测量值计算主机的平均CPU使用率并存入`cpu_usage_hourly`。InfluxDB提供多种聚合函数如`MEAN()`, `MAX()`, 支持滑动窗口聚合等复杂操作,助力时间序列数据分析和趋势预测。通过CQ,用户能高效管理和利用时间序列数据信息。
|
存储
ES聚合查询详解(四):管道聚合
ES聚合查询详解(四):管道聚合
541 0
ES聚合查询详解(四):管道聚合
|
大数据 开发者
聚合操作_多维聚合_需求介绍 | 学习笔记
快速学习聚合操作_多维聚合_需求介绍
110 0
聚合操作_多维聚合_需求介绍 | 学习笔记
|
SQL 分布式计算 大数据
聚合操作_多维聚合_cubeSQL | 学习笔记
快速学习聚合操作_多维聚合_cubeSQL
119 0
聚合操作_多维聚合_cubeSQL | 学习笔记
|
大数据 开发者
聚合操作_多维聚合_cube | 学习笔记
快速学习聚合操作_多维聚合_cube
聚合操作_多维聚合_cube | 学习笔记
|
大数据 开发者
聚合操作_多维聚合_rollup | 学习笔记
快速学习聚合操作_多维聚合_rollup
聚合操作_多维聚合_rollup | 学习笔记