一、提出任务
- 分组求分组求TopN是大数据领域常见的需求,主要是根据数据的某一列进行分组,然后将分组后的每一组数据按照指定的列进行排序,最后取每一组的前N行数据。
学生成绩数据:
张三丰 90
李孟达 85
张三丰 87
王晓云 93
李孟达 65
张三丰 76
王晓云 78
李孟达 60
张三丰 94
王晓云 97
李孟达 88
张三丰 80
王晓云 88
李孟达 82
王晓云 98
- 执行查询
- 预备工作:启动集群的HDFS与Spark
- 将成绩文件-grades.txt上传到HDFS上/input 目录
二、涉及知识点
1、开窗函数概述
- Spark1.5.x版本以后,在Spark
SQL和DataFrame中引入了开窗函数,其中比较常用的开窗函数就是row_number(),该函数的作用是根据表中字段进行分组,然后根据表中的字段排序;其实就是根据其排序顺序,给组中的每条记录添加一个序号,且每组序号都是从1开始,可利用它这个特性进行分组取topN。
2、开窗函数格式
三、完成任务
(一)新建Maven项目
- 将Java目录改为Scala目录