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

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

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段:课时名称】学习笔记,与课程紧密联系,让用户快速学习知识。

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


聚合操作_多维聚合_cubeSQL

 

cubeSQL

 

Cube 和 rollup 算子,在 helpSQL 当中也有类似的语句。

helpSQL 直接支持 cube,但是 spark 当前的这个版本还不直接支持 cube,spark 当中支持另外一种写法,可以按照 grouping sets 进行相应聚合,下面一起去了解一下怎么完成这种聚合。

进入到代码当中,先把数据集拷贝:

注:算子是 sql 操作,只是写成了命令式并且算子中直接支持 sql 语句。

@Test

def cubesql(): unit = {

val schemaFinal = structType(

list(

structField( "source", stringType),

structField( "year", IntegerType),

structField("month", IntegerType),

structField( "day", IntegerType),

structField(""hour", IntegerType),

structField("season", IntegerType) ,

structField( "pm", DoubleType)

val pmFinal = spark.read

.schema(schemaFinal)

.option( "header", value = true)

.csv( path = "dataset/ pm_final.csv")

pmFinal.createorReplaceTempview( viewName = "pm_final")

/编写 sql

Val result = spark.sql( sqlText = "select source,year,avg(pm) as pm from pm_final group by source, year " +"grouping sets ((source, year), (source), (year),())"+

"order by source asc nulls last, year asc nulls last")

注:

select 后面的内容要先编写 from 后的内容;(source,year)后的 source,year 要带上括号,表示是多个集合。

通过 grouping sets 间接实现 cube 的功能,提高控制力。

Result.show()

}

运行并查看结果集:

image.png

以上就是 sql 语句中编写 cube 代码。

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