一、实战概述
-
本次实战主要聚焦于使用Hive框架对成绩数据进行处理和分析。任务目标是基于一个包含六个字段(姓名、语文、数学、英语、物理、化学)的成绩表,计算每个学生的总分和平均分。
-
首先,我们在虚拟机上创建了一个名为
score.txt
的文本文件,其中包含了五名学生的成绩记录。然后,我们将该文件上传到HDFS的指定目录/hivescore/input
中。 -
接下来,我们启动了Hive Metastore服务,并通过执行命令行启动了Hive客户端。在客户端中,我们创建了一个名为
t_score
的内部Hive表,该表的结构与成绩表的字段相匹配。我们使用load data
命令将HDFS中的成绩数据加载到t_score
表中。 -
最后,我们编写了一条Hive SQL语句,用于计算每个学生的总分和平均分。该语句根据学生的姓名进行分组,并对每个学生的所有科目成绩进行求和和求平均值。结果集包含了每个学生的姓名、总分和平均分。
-
通过这次实战,我们展示了如何利用Hive框架处理和分析大规模数据,以及如何通过简单的SQL语句实现复杂的数据统计和计算任务。这一过程不仅体现了Hive在大数据处理中的高效性和便利性,也为我们提供了宝贵的实践经验,为进一步的数据分析工作奠定了基础。
二、提出任务
- 成绩表,包含六个字段(姓名、语文、数学、英语、物理、化学),有五条记录
姓名 | 语文 | 数学 | 英语 | 物理 | 化学 |
---|---|---|---|---|---|
李小双 | 89 | 78 | 94 | 96 | 87 |
王丽霞 | 94 | 80 | 86 | 78 | 80 |
吴雨涵 | 90 | 67 | 95 | 92 | 60 |
张晓红 | 87 | 76 | 90 | 79 | 59 |
陈燕文 | 97 | 95 | 92 | 88 | 86 |
- 利用Hive框架,计算每个同学的总分与平均分
吴雨涵 404 404.0
张晓红 391 391.0
李小双 444 444.0
王丽霞 418 418.0
陈燕文 458 458.0
三、完成任务
(一)准备数据文件
1、在虚拟机上创建文本文件
- 在master虚拟机上创建
score.txt
文件
2、将文本文件上传到HDFS指定目录
-
在HDFS上创建
/hivescore/input
目录
文章来源:https://www.toymoban.com/news/detail-770502.html -
将
score.txt
文件上传到HDFS的/hivescore/input
目录
文章来源地址https://www.toymoban.com/news/detail-770502.html
(二)实现步骤
1、启动Hive Metastore服务
- 执行命令:
hive --service metastore &
,在后台启动metastore
服务
2、启动Hive客户端
- 执行命令:
hive
,看到命令提示符hive>
3、创建Hive表,加载HDFS数据文件
- 创建内部表
t_score
,执行命令:create table t_score ( name string, chinese int, math int, english int, physics int, chemistry int ) row format delimited fields terminated by ' ';
- 在MySQL的
hive
数据库的TBLS
表里可以查看内部表t_score
对应的记录
- 加载成绩数据文件到内部表
t_score
,执行命令:load data inpath '/hivescore/input/score.txt' into table t_score;
- 查看成绩表全部记录,执行语句:
select * from t_score;
4、利用Hive SQL统计总分与平均分
- 编写Hive SQL语句,进行词频统计
- 执行命令:
SELECT name, SUM(chinese + math + english + physics + chemistry) AS total_score, (SUM(chinese + math + english + physics + chemistry)) / 5 AS average_score FROM t_score GROUP BY name;
四、拓展练习
- 改变输出格式
到了这里,关于Hive实战:统计总分与平均分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!