文章目录
一、提出任务
(1)案例分析
- 分组求TopN是大数据领域常见的需求,主要是根据数据的某一列进行分组,然后将分组后的每一组数据按照指定的列进行排序。最后取前每一组前N行数据。
- 有一组学生的成绩
张三 98
李四 87
王五 70
赵六 85
胡八一 68
张三 88
李四 79
王五 85
赵六 77
胡八一 70
张三 89
李四 90
王五 83
赵六 73
胡八一 93
张三 70
李四 75
王五 69
赵六 80
胡八一 79
- 同一个学生有多门成绩,现需要计算每个学生分数最高的前3个成绩,期望输出结果如下所示:
- 预备工作:启动集群的HDFS与Spark
- 本地上传文本grades.txt 到hdfs
- 在hdfs上查看grades.txt内容
二、完成任务
(一)新建Maven项目
- 设置项目信息
- 增加目录scala
(二)添加相关依赖和构建插件
- 在pom.xml添加依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.cch.rdd</groupId>
<artifactId>GradeTopN</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>