hadoop之MapReduce统计选修课程人数,不及格门数,选课人数

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


目录

前言

一、题目要求

二、数据解析

        student.txt文件部分数据

三、需求分析及代码编写

        总体的思路:

需求1:求DataBase课程的选修人数

需求2:求每个同学不及格的门数

需求3:求各个课程的选课人数

四、打包代码,上传到集群上运行

五、附带一张实现需求2过程详解



前言

        学习的记录,有误请指正

        需要已经配置好IDEA和hadoop的环境

一、题目要求

1、求DataBase课程的选修人数

2、求每个同学的不及格的门数

3、求各个课程的选课人数

二、数据解析

        student.txt文件部分数据

Alger,Algorithm,50
Alger,OperatingSystem,32
Alger,Python,96
Alger,ComputerNetwork,20
Alger,Software,74
Allen,Algorithm,76
Allen,OperatingSystem,70
Allen,Python,10
Allen,Software,76
Alston,Algorithm,78
Alston,DataStructure,74
Alston,Python,96
Alston,Software,28
Alva,DataBase,72
Alva,DataStructure,64
Alva,CLanguage,0
Alva,ComputerNetwork,58
Alva,Software,82
Alvin,DataBase,88
Alvin,Algorithm,96
Alvin,OperatingSystem,26
Alvin,Python,84
Alvin,ComputerNetwork,76
Alvis,Algorithm,18
Alvis,DataStructure,56

该文件分为三部分

第一部分为学生姓名

第二部分为选修课程

第三部分为该学生对应选修个课程的成绩。

很明显的可以看出他们是以英文标点 "," 相隔。

三、需求分析及代码编写

        总体的思路:

        先通过InputFormat的子方法FileInputFormat将文件上传到hadoop集群当中,这是我们的文本数据将会被按照行划分,形成一个<k1,v1>的一个键值对。其中k1相当于偏移量,v1则是改行的数据。demo:Alger,Algorithm,50被划分成<0 Alger,Algorithm,50>。此时k1的类型时LongWritable,v1的类型是Text

        第二步,map阶段,在这个阶段,要继承Mapper重写map函数。我们要做的就是对v1进行一些操作,比如按照什么分隔符进行分割文本数据,分割之后选取那些我们需要的数据,并形成一个新的<k2,v2>,传入到Reducer阶段

        第三步,Reducer阶段,这个阶段就是对map阶段过来的数据进行一些汇并进一步汇总,并进一步精细。这要继承Reducer重写reduce函数。

        最后,通过OutputFormat的子方法FileOutputFormat将Reducer段的结果输出。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值