0


Hive实战:分科汇总求月考平均分

一、实战概述

在这个实战中,我们运用了Hive框架来处理学生的月考成绩数据。具体步骤如下:

  1. 准备数据: 我们准备了三个文本文件,分别包含了语文、数学和英语的月考成绩数据,并将这些数据上传到HDFS的指定目录。
  2. 启动Hive Metastore服务并连接Hive客户端: 我们启动了Hive Metastore服务,并通过Hive客户端连接到Hive,为后续操作做好准备。
  3. 创建分区表: 在Hive中,我们创建了一个名为student_score的分区表,用于存储学生的成绩数据,其中分区字段为科目(subject)。这样的分区设计使得后续查询和分析更加方便。
  4. 加载数据到分区表: 按照科目将数据加载到分区表中,分别加载了语文、数学和英语的成绩数据。这样的数据组织方式有助于提高查询效率。
  5. 使用Hive SQL进行统计: 利用Hive的SQL语句,我们进行了统计操作,计算每个学生在三个科目上的月考平均分。通过使用AVG函数和ROUND函数,我们得到了每个学生在语文、数学和英语三个科目上的月考平均分,并保留了一位小数。

整个实战过程涉及了Hive表的创建、分区管理、数据加载以及SQL查询等多个环节,充分展示了Hive在大数据处理中的灵活性和便捷性。通过这次实践,我们更深入地理解和掌握了Hive框架在数据分析和查询中的应用。

二、提出任务

统计每个同学各科月考平均分

  • 语文月考成绩 - chinese.txt
1 张晓云 892 张晓云 733 张晓云 674 张晓云 705 张晓云 796 张晓云 877 张晓云 998 张晓云 839 张晓云 9710 张晓云 9211 张晓云 6712 张晓云 861 王东林 492 王东林 833 王东林 674 王东林 495 王东林 936 王东林 877 王东林 658 王东林 929 王东林 6010 王东林 9411 王东林 8112 王东林 901 李宏宇 772 李宏宇 663 李宏宇 894 李宏宇 875 李宏宇 966 李宏宇 797 李宏宇 878 李宏宇 969 李宏宇 6910 李宏宇 8711 李宏宇 9612 李宏宇 79
  • 数学月考成绩 - math.txt
1 张晓云 792 张晓云 833 张晓云 774 张晓云 905 张晓云 896 张晓云 677 张晓云 898 张晓云 939 张晓云 9010 张晓云 8211 张晓云 7712 张晓云 961 王东林 782 王东林 943 王东林 764 王东林 705 王东林 906 王东林 837 王东林 858 王东林 829 王东林 8410 王东林 7811 王东林 9912 王东林 931 李宏宇 862 李宏宇 813 李宏宇 764 李宏宇 935 李宏宇 886 李宏宇 827 李宏宇 818 李宏宇 939 李宏宇 8610 李宏宇 9011 李宏宇 6712 李宏宇 88
  • 英语月考成绩 - english.txt
1 张晓云 782 张晓云 833 张晓云 924 张晓云 665 张晓云 826 张晓云 897 张晓云 798 张晓云 689 张晓云 9610 张晓云 9111 张晓云 8712 张晓云 821 王东林 692 王东林 863 王东林 734 王东林 995 王东林 676 王东林 957 王东林 748 王东林 929 王东林 7610 王东林 8811 王东林 9212 王东林 561 李宏宇 882 李宏宇 783 李宏宇 924 李宏宇 785 李宏宇 896 李宏宇 767 李宏宇 928 李宏宇 759 李宏宇 8810 李宏宇 9211 李宏宇 9712 李宏宇 85

三、完成任务

(一)准备数据

  • 启动hadoop服务在这里插入图片描述

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

  • 创建subjectavg目录,在里面创建chinese.txt文件在这里插入图片描述
  • 创建math.txt在这里插入图片描述
  • 创建english.txt在这里插入图片描述

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

  • 创建/subjectavg/input目录,执行命令:hdfs dfs -mkdir -p /subjectavg/input在这里插入图片描述
  • 将文本文件chinese.txtmath.txtenglish.txt,上传到【HDFS】的/subjectavg/input目录在这里插入图片描述

(二)实现步骤

1、启动Hive Metastore服务

  • 执行命令:hive --service metastore &,在后台启动metastore服务在这里插入图片描述

2、启动Hive客户端

  • 执行命令:hive,看到命令提示符hive>在这里插入图片描述

3、创建分区的学生成绩表

  • 执行语句:hive> CREATE TABLE student_score ( id INT, name STRING, score INT ) PARTITIONED BY (subject STRING) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '; 在这里插入图片描述

4、按分区加载数据

  • 加载chinese.txt到chinese分区
  • 执行命令:LOAD DATA INPATH '/subjectavg/input/chinese.txt' INTO TABLE student_score PARTITION (subject='chinese');在这里插入图片描述
  • 加载math.txt到math分区
  • 执行命令:LOAD DATA INPATH '/subjectavg/input/math.txt' INTO TABLE student_score PARTITION (subject='math');在这里插入图片描述
  • 加载english.txt到english分区
  • 执行命令:LOAD DATA INPATH '/subjectavg/input/english.txt' INTO TABLE student_score PARTITION (subject='english');在这里插入图片描述 查看Hadoop WebUI里查看分区表对应目录在这里插入图片描述

5、查看分区表全部记录

  • 执行语句:select * from student_score;在这里插入图片描述

6、统计每个学生三科月考平均分

四、实战总结

标签: hive

本文转载自: https://blog.csdn.net/linlong2003/article/details/135471103
版权归原作者 林边上的猫 所有, 如有侵权,请联系我们删除。

“Hive实战:分科汇总求月考平均分”的评论:

还没有评论