Hive实战:成绩汇总

一、准备数据文件

创建文件score.txt在主目录下,并写入内容

vim score.txt

李小双 89 78 94 96 87
王丽霞 94 80 86 78 80
吴雨涵 90 67 95 92 60
张晓红 87 76 90 79 59
陈燕文 97 98 92 88 86

用cat 命令查看内容
在这里插入图片描述

在hdfs下创建文件目录

hdfs dfs -mkdir -p /hivescore/input/

在hdfs下创建命令要用-mkdir-p用于多级目录创建

上传文件到hdfs目录下

hdfs dfs -put score.txt /hivescore/input/

在这里插入图片描述

二、实现步骤

1、我们需要启动Hive Metastore服务,这是Hive的元数据存储服务

hive --service metastore &

在这里插入图片描述

2、执行命令hive,看到命令提示符hive>表示进入hive成功

在这里插入图片描述
在这里插入图片描述

3、创建Hive表,加载HDFS数据文件

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对应的记录

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

在这里插入图片描述
加载成绩数据文件到内部表t_score,在hive中执行以下命令

load data inpath '/hivescore/input/score.txt' into table t_score;

在这里插入图片描述
查看成绩表全部记录,执行命令

select * from t_score;

在这里插入图片描述
统计总分和平均分

	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;

在这里插入图片描述

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值