【手把手 脑把脑】教会你使用idea基于MapReduce的统计数据分析(从问题分析到代码编写)(一)

简介: 【手把手 脑把脑】教会你使用idea基于MapReduce的统计数据分析(从问题分析到代码编写)(一)

1 编程前总分析

1.1 数据源

英语,李沐,85,男,20
数学,李沐,54,男,20
音乐,李沐,54,男,20
体育,李沐,34,男,20
语文,李媛,81,女,20
音乐,李媛,85,女,20
体育,李媛,89,女,20
语文,马珂,75,女,19
英语,马珂,85,女,19
音乐,马珂,75,女,19
体育,马珂,65,女,19
语文,潘琴,42,女,20
英语,潘琴,48,女,20
音乐,潘琴,48,女,20
体育,潘琴,78,女,20
英语,秦灿,75,男,19
数学,秦灿,89,男,19
音乐,秦灿,85,男,19
体育,秦灿,99,男,19
语文,王靓,85,女,21
英语,王靓,85,女,21
数学,王靓,48,女,21
音乐,王靓,86,女,21
音乐,王靓,85,女,21
体育,王靓,96,女,21
体育,王靓,87,女,21
英语,吴起,85,男,20
数学,吴起,85,男,20
英语,张翔,96,男,20
数学,张翔,85,男,20
音乐,张翔,85,男,20
体育,张翔,87,男,20
语文,郑虎,85,男,20
数学,郑虎,85,男,20
音乐,郑虎,88,男,20
体育,郑虎,68,男,20
语文,周伟,76,男,19
英语,周伟,85,男,19
数学,周伟,76,男,19
音乐,周伟,99,男,19
体育,周伟,90,男,19
数学,朱鸿,90,男,21
音乐,朱鸿,80,男,21
体育,朱鸿,81,男,21

1.2 需要掌握的知识

1.2.1 Hadoop对比java的数据类型

java Hadoop

boolean BooleanWritable

Integer/int IntWritable

Long/long LongWritable

Float/float FloatWritable

Double/double DoubleWritable

String Text

NullWritable

1.2.2 MapReduce流程简介

   MapReduce是一种简化的并行计算编程模型框架,主要解决了分布式计算的相关问题。所谓的分布式计算就是将一个文件里的数据内容,一行行的发送给mapper,mapper接收到一行数据使用split分割后接收,并按key分组后传给reducer,reducer将接收到的一组数据进行处理后输出,当所有的组都处理完成结束一个MapReduce。

image.png



1.3.3 MapReduce流程细分

   功能:统计每门课程中相同分数的人有多少及他们的名字


   思考一下,想要统计每门课程中相同分数的人数及名字,我们需要以什么字段为标准对数据进行分组(mapper最主要的功能就是分组)?想要搞明白上面的问题,试着和mysql的分组查询操作做一下类比,具体sql语句如下:


SELECT 姓名 FROM 表 GROUP BY 课程名称,成绩 ;


   参考sql语句的分组查询,mapper功能就相当于按课程和成绩两个字段值对数据进行分组并查询学生姓名。mapper里的最后一句context.write(key,value);里的两个参数,key等于GROUP BY后面的字段名-->课程成绩和成绩的拼接字符串,value等于GROUP BY前面的字段名-->姓名。mapper就实现了将所有key值相同的分为一组,value放在迭代器中,一组组传给reducer,reducer使用一个Text类型的key和迭代器value进行接收。


image.png


2 编码阶段

       mapreduce拆分:每个mapreduce程序都可以拆分成三个小部分mapper类、reducer类、main方法类。每个类都有其固定的框架,需要改变的就只有mapper和reducer类中重写方法的方法体本身,还有main方法里面的各项参数值。


       如果说,当然我的读者肯定都是聪明的亚批,我是说如果你朋友的java编程基础不是很好,我的注释表示它完全可以很细。        


相关文章
|
3月前
|
数据采集 存储 数据挖掘
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
本文介绍了一个基于Python的书旗网小说网站数据采集与分析系统,通过自动化爬虫收集小说数据,利用Pandas进行数据处理,并通过Matplotlib和Seaborn等库进行数据可视化,旨在揭示用户喜好和市场趋势,为图书出版行业提供决策支持。
321 6
【优秀python数据分析案例】基于Python书旗网小说网站数据采集与分析的设计与实现
|
1月前
|
数据挖掘 UED
ChatGPT数据分析——探索性分析
ChatGPT数据分析——探索性分析
|
1月前
|
数据可视化 数据挖掘 数据处理
ChatGPT数据分析应用——热力图分析
ChatGPT数据分析应用——热力图分析
|
1月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(分组分析)
ChatGPT在常用的数据分析方法中的应用(分组分析)
|
1月前
|
机器学习/深度学习 数据采集 数据可视化
如何理解数据分析及数据的预处理,分析建模,可视化
如何理解数据分析及数据的预处理,分析建模,可视化
52 0
|
1月前
|
数据挖掘
ChatGPT在常用的数据分析方法中的应用(对比分析)
ChatGPT在常用的数据分析方法中的应用(对比分析)
|
2月前
|
机器学习/深度学习 人工智能 数据挖掘
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
数据分析师是在多个行业中专门从事数据搜集、整理和分析的专业人员
40 3
|
3月前
|
供应链 数据可视化 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
本文详细介绍了第十一届泰迪杯数据挖掘挑战赛B题的解决方案,涵盖了对产品订单数据的深入分析、多种因素对需求量影响的探讨,并建立了数学模型进行未来需求量的预测,同时提供了Python代码实现和结果可视化的方法。
125 3
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
|
3月前
|
机器学习/深度学习 数据采集 数据挖掘
【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题二
本文提供了第十一届泰迪杯数据挖掘挑战赛B题问题二的详细解题步骤,包括时间序列预测模型的建立、多元输入时间预测问题的分析、时间序列预测的建模步骤、改进模型的方法,以及使用Python进行SARIMA模型拟合和预测的具体实现过程。
80 1
下一篇
无影云桌面