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

文章目录

  • 一、实战概述
  • 二、提出任务
  • 三、完成任务
    • (一)准备数据文件
      • 1、在虚拟机上创建文本文件
      • 2、将文本文件上传到HDFS指定目录
    • (二)实现步骤
      • 1、启动Hive Metastore服务
      • 2、启动Hive客户端
      • 3、创建Hive表,加载HDFS数据文件
      • 4、利用Hive SQL统计总分与平均分

一、实战概述

  • 本次实战主要聚焦于使用Hive框架对成绩数据进行处理和分析。任务目标是基于一个包含六个字段(姓名、语文、数学、英语、物理、化学)的成绩表,计算每个学生的总分和平均分。

  • 首先,我们在虚拟机上创建了一个名为score.txt的文本文件,其中包含了五名学生的成绩记录。然后,我们将该文件上传到HDFS的指定目录/hivescore/input中。

  • 接下来,我们启动了Hive Metastore服务,并通过执行命令行启动了Hive客户端。在客户端中,我们创建了一个名为t_score的内部Hive表,该表的结构与成绩表的字段相匹配。我们使用load data命令将HDFS中的成绩数据加载到t_score表中。

  • 最后,我们编写了一条Hive SQL语句,用于计算每个学生的总分和平均分。该语句根据学生的姓名进行分组,并对每个学生的所有科目成绩进行求和和求平均值。结果集包含了每个学生的姓名、总分和平均分。

  • 通过这次实战,我们展示了如何利用Hive框架处理和分析大规模数据,以及如何通过简单的SQL语句实现复杂的数据统计和计算任务。这一过程不仅体现了Hive在大数据处理中的高效性和便利性,也为我们提供了宝贵的实践经验,为进一步的数据分析工作奠定了基础。

二、提出任务

  • 成绩表,包含六个字段(姓名、语文、数学、英语、物理、化学),有五条记录
    在这里插入图片描述
  • 利用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目录
    在这里插入图片描述

  • score.txt文件上传到HDFS的/hivescore/input目录
    在这里插入图片描述

(二)实现步骤

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, avg(chinese + math + english + physics + chemistry) as average_score from t_score group by name;
    在这里插入图片描述
  • 这个SQL语句的功能是在一个名为t_score的表中,根据学生的姓名(name)进行分组,并对每个学生各科成绩进行统计计算。
  1. 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语句的最终功能是输出一个结果集,其中包含每个学生的姓名、他们的总分以及平均分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/581865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PO 发布SAP SProxy->外围系统 WebService

通信概览图 外围系统与PO、SAP的请求响应通信过程大致可以用下图描述 (个人整理所得,可能有误,欢迎指正) 1. 前期准备 1.1 外围系统提供WebService接口 以A系统的RFC发布WebService接口 RFC发布WebService接口 获取到WSDL地…

CSS样式详解之伪类元素及CSS3选择器

目录 一、伪类元素二、CSS3选择器1. 相邻选择器()2. 兄弟选择器(~)3. 指定选择器(nth-of-type(n))4. 子元素指定选择器(子元素匹配选择器)5. 属性选择器① [ 属性名 ]② [ 属性名属性…

什么是MLOps?

人工智能(AI)和机器学习(ML)应用激动人心的发展浪潮也许会让人相信,企业交付ML产品的能力也在迅速提高。但现实情况是,ML内部流程很难跟上行业的整体发展……但若以MLOps的形式则有希望解决此问题&#xff…

面试复盘5——后端开发——一面

前言 本文主要用于个人复盘学习,因此为保障公平,所以本文不指出公司名,题目编号只是为了自己区别而已。对待面经,望读者还是更多从其中学习总结,而不是去碰原题。 面试岗位信息 后端开发秋招,上海某大中…

08.Kubernetes node 节点部署

Kubernetes node节点部署比较繁琐,需要配置一堆的配置文件和证书,手动配置特别容易出错。 这就体现出用脚本部署的优势,将繁琐的操作批量自动化 一是极大的提升效率(尤其是节点比较多的时候)二是确保所有节点配置的统一性(配置统一很重要,因为正常情况下,如果某个节点出…

一文让你读懂Python中的Response对象

目录 引言 一、Response对象简介 二、Response对象的组成 三、Response对象的创建 1、使用内置的http.client模块: 2、使用requests库: 3、使用Django框架: 四、Response对象的处理 1、发送给客户端: 2、设置响应头&…

centos 编译安装 libxml-2.0

centos 编译安装 libxml-2.0 下载地址 我下载的 libxml2-2.9.12.tar.gz 版本 下载后解压&#xff0c;进入解压后的目录 执行&#xff1a; ./configure make && make install安装过程中出现 <Pyghon.h> 找不到的问题&#xff0c;指定了路径之后还是找不到&…

来看看这个技术,这才是UPS监控的最好方式!

在现代社会中&#xff0c;信息技术的持续发展使得机房UPS监控变得至关重要。机房是企业信息系统的核心&#xff0c;UPS监控系统能够确保在电力故障或其他问题发生时&#xff0c;机房设备能够持续稳定运行&#xff0c;从而保障数据的安全性和可用性。 客户案例 金融机构 河北某…

2660. 保龄球游戏的获胜者 --力扣 --JAVA

题目 给你两个下标从 0 开始的整数数组 player1 和 player2 &#xff0c;分别表示玩家 1 和玩家 2 击中的瓶数。 保龄球比赛由 n 轮组成&#xff0c;每轮的瓶数恰好为 10 。 假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为&#xff1a; 如果玩家在该轮的前两轮的任何…

fork函数详解【Linux】

fork函数详解【Linux】 fork函数的概念fork调用后的底层细节解释fork学习中的一些笔记和问题fork的写实拷贝深拷贝的策略 fork调用失败的原因 fork函数的概念 调用fork函数可以在已存在的进程中创建一个子进程&#xff0c;此时&#xff0c;新进程叫做子进程&#xff0c;原进程叫…

SpringBoot当中的Singleton和Prototype详解

在Spring Boot中&#xff0c;Singleton和Prototype是两种Bean的作用域。这两种作用域决定了Spring容器如何创建和管理Bean的实例。 Singleton&#xff08;单例&#xff09;&#xff1a; 当一个Bean被配置为Singleton作用域时&#xff0c;Spring容器在启动时只会创建该Bean的一个…

Spring Boot 入参校验及全局异常处理

版本依赖 JDK 17 Spring Boot 3.2.0 源码地址&#xff1a;Gitee Spring Boot validation spring-boot-starter-validation是基于hibernate-validator的实现&#xff0c;在Spring Boot项目中直接导入spring-boot-starter-validation即可。 Valid 和 Validated 的区别 适用范围…

《对话品牌》——活到老“养”到老

本期节目《对话品牌》栏目组邀请到了深圳壹常青健康管理有限公司董事长邬锡娣女士参加栏目录制&#xff0c;分享其企业故事&#xff0c;树立品牌形象&#xff0c;提升品牌价值&#xff01; 节目嘉宾&#xff1a;邬锡娣女士 节目主持人&#xff1a;董倩 节目播出平台&#xf…

在线教育系统源码解读:定制化企业培训APP的开发策略

当下&#xff0c;企业培训正经历着一场数字化的迭代&#xff0c;定制化企业培训APP应运而生&#xff0c;成为提升员工技能、推动企业发展的重要工具。下文小编将与大家一同深入了解在线教育系统的源码&#xff0c;探讨开发定制化企业培训APP的策略&#xff0c;以满足不同企业的…

C#获取windows系统资源使用情况

1.前言 之前有一篇博客介绍如何获取Linux服务器上的资源使用情况《Java 获取服务器资源&#xff08;内存、负载、磁盘容量&#xff09;》&#xff0c;这里介绍如何通过C#获取Window系统的资源使用。 2.获取服务器资源 2.1.内存 [DllImport("kernel32.dll")][retu…

jenkins解决工具找不到的问题

--------------------------插件选择版本最好能跟服务器对上

香橙派5plus从ssd启动Ubuntu

官方接口图 我实际会用到的就几个接口&#xff0c;背面的话就一个M.2固态的位置&#xff1a; 其中WIFI模块的接口应该也可以插2230的固态&#xff0c;不过是pcie2.0的速度&#xff0c;背面的接口则是pcie3.0*4的速度&#xff0c;差距还是挺大的。 开始安装系统 准备工作 一张…

常用入门算法

一&#xff1a;快慢指针 适合原地调换一个数组的元素们的位置&#xff0c;使用for循环&#xff0c;声明两个下标&#xff0c;一个移的快&#xff0c;一个移的慢。 快的指针用来往前走&#xff0c;慢的用来停在目标数据上。典型的案例&#xff1a;283. 移动零 1、给定一个数组…

C语言中关于switch语句的理解

首先我们来看一下switch的定义 switch&#xff08;整型表达式&#xff09; { case 整型常量表达式: 语句&#xff1b; } 我们在书写时要注意一下&#xff0c;无论是在switch还是case&#xff0c;后面跟着的都一定要是整型&#xff0c;而且case这一行写完时&#xff0c;最后要用…

图片放大后变模糊了怎么办?这个方法惊艳你

我们需要了解为什么图片放大会模糊。在照片放大时&#xff0c;像素也会随之增加。如果图片的像素不足&#xff0c;那么放大后每个像素的大小也会增加&#xff0c;从而导致细节模糊。 那么&#xff0c;面对这个问题&#xff0c;我们该如何解决呢&#xff1f;别急&#xff0c;让…