Hive实战:计算总分与平均分

这篇具有很好参考价值的文章主要介绍了Hive实战:计算总分与平均分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、实战描述

本次实战主要聚焦于使用Hive框架对成绩数据进行处理和分析。任务目标是基于一个包含六个字段(姓名、语文、数学、英语、物理、化学)的成绩表,计算每个学生的总分和平均分。
首先,我们在虚拟机上创建了一个名为score.txt的文本文件,其中包含了五名学生的成绩记录。然后,我们将该文件上传到HDFS的指定目录/hivescore/input中。
接下来,我们启动了Hive Metastore服务,并通过执行命令行启动了Hive客户端。在客户端中,我们创建了一个名为t_score的内部Hive表,该表的结构与成绩表的字段相匹配。我们使用load data命令将HDFS中的成绩数据加载到t_score表中。
最后,我们编写了一条Hive SQL语句,用于计算每个学生的总分和平均分。该语句根据学生的姓名进行分组,并对每个学生的所有科目成绩进行求和和求平均值。结果集包含了每个学生的姓名、总分和平均分。
通过这次实战,我们展示了如何利用Hive框架处理和分析大规模数据,以及如何通过简单的SQL语句实现复杂的数据统计和计算任务。这一过程不仅体现了Hive在大数据处理中的高效性和便利性,也为我们提供了宝贵的实践经验,为进一步的数据分析工作奠定了基础。

二、提出任务

成绩表,包含六个字段(姓名、语文、数学、英语、物理、化学),有五条记录
Hive实战:计算总分与平均分,hive,hadoop,数据仓库
利用Hive框架,计算每个同学的总分与平均分

  吴雨涵  404     404.0
  张晓红  391     391.0
  李小双  444     444.0
  王丽霞  418     418.0
  陈燕文  458     458.0

三、完成任务

(一)准备数据文件

1、在虚拟机上创建文本文件

在master虚拟机上创建score.txt文件
Hive实战:计算总分与平均分,hive,hadoop,数据仓库

2、将文本文件上传到HDFS指定目录

在HDFS上创建/hivescore/input目录

Hive实战:计算总分与平均分,hive,hadoop,数据仓库将score.txt文件上传到HDFS的/hivescore/input目录
Hive实战:计算总分与平均分,hive,hadoop,数据仓库

(二)实现步骤

1、启动Hive Metastore服务

执行命令:hive --service metastore &,在后台启动metastore服务

Hive实战:计算总分与平均分,hive,hadoop,数据仓库

2、启动Hive客户端

执行命令:hive,看到命令提示符hive>

Hive实战:计算总分与平均分,hive,hadoop,数据仓库
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 ’ ';
Hive实战:计算总分与平均分,hive,hadoop,数据仓库
在MySQL的metastore数据库的TBLS表里可以查看内部表t_score对应的记录

Hive实战:计算总分与平均分,hive,hadoop,数据仓库

select TBL_ID,DB_ID,TBL_NAME,TBL_TYPE from metastore.TBLS;

加载成绩数据文件到内部表t_score,执行命令:load data inpath ‘/hivescore/input/score.txt’ into table t_score;
Hive实战:计算总分与平均分,hive,hadoop,数据仓库
查看成绩表全部记录,执行语句:select * from t_score;

4、利用Hive SQL统计总分与平均分
编写Hive SQL语句,进行词频统计
执行命令:select name, sum(chinese + math + english + physics + chemistry) as total_score, avg(chinese + math + english + physics + chemistry) as average_score from t_score group by name;
Hive实战:计算总分与平均分,hive,hadoop,数据仓库
1、这个SQL语句的功能是在一个名为t_score的表中,根据学生的姓名(name)进行分组,并对每个学生各科成绩进行统计计算。
SELECT name: 选择t_score表中的name列,表示我们要按照姓名来显示结果。
2、SUM(chinese + math + english + physics + chemistry) AS total_score: 对每个学生的语文、数学、英语、物理和化学成绩进行求和,并将这一结果命名为total_score。这将计算出每个学生的总分。
3、AVG(chinese + math + english + physics + chemistry) AS average_score: 对每个学生的语文、数学、英语、物理和化学成绩进行求平均值,并将这一结果命名为average_score。这将计算出每个学生的平均分。
4、FROM t_score: 指定数据来源是名为t_score的表。
5、GROUP BY name: 根据name列进行分组,这意味着对于表中的每一条具有不同姓名的记录,都会分别进行总分和平均分的计算。

因此,这个SQL语句的最终功能是输出一个结果集,其中包含每个学生的姓名、他们的总分以及平均分。

四、拓展练习

改变输出格式

Hive实战:计算总分与平均分,hive,hadoop,数据仓库

(吴雨涵, 384, 384.0)
(张晓红, 391, 391.0)
(李小双, 444, 444.0)
(王丽霞, 418, 418.0)
(陈燕文, 458, 458.0)

做法:
执行命令:SELECT CONCAT(‘(’, name, ', ', total_score, ', ', average_score, ‘)’) AS result FROM ( SELECT name, SUM(chinese + math + english + physics + chemistry) AS total_score, AVG(chinese + math + english + physics + chemistry) AS average_score FROM t_score GROUP BY name ) AS subquery;
Hive实战:计算总分与平均分,hive,hadoop,数据仓库文章来源地址https://www.toymoban.com/news/detail-784899.html

到了这里,关于Hive实战:计算总分与平均分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包