关于Hive的练习

Hive考试练习题(参考题解) 修改属性“javax.jdo.option.ConnectionDriverName”的值为“com.mysql.jdbc.Driver”请打开【VMwareWorkstationPro】中的【linux1】环境,登录账号【root】密码【root】。修改属性“hive.downloaded.resources.dir”的值为“/opt/soft/hive/tmp”修改属性“hive.exec.local.scratchdir”的值为“/opt/soft/hive/tmp”使用【mytest】数据库。... 阅读详情

开始之前,先了解几个命令:

在Hive CLI中,可以使用如下一些命令

显示当前会话有多少函数可用

show functions;

显示函数的描述信息

desc function concat;

显示函数的扩展描述信息

desc function   extended concat;

现在来练习下Hive中的一些常用内置函数

先来查看下表winfunc:

hive (default)> desc winfunc;
OK
col_name	data_type	comment
id                  	int                 	                    
money               	float               	                    
type                	string              	                    
Time taken: 0.132 seconds, Fetched: 3 row(s)
hive (default)> select * from winfunc;
OK
winfunc.id	winfunc.money	winfunc.type
1001	100.0	ABC
1001	150.0	BCD
1001	200.0	CDE
1001	150.0	DEF
1002	200.0	ABC
1002	200.0	ABC
1002	100.0	BCD
1002	300.0	CDE
1002	50.0	DEF
1002	400.0	EFG
1003	100.0	ABC
1003	50.0	BCD
1004	60.0	ABC
Time taken: 1.177 seconds, Fetched: 13 row(s)

1. and和or的优先级

现在想要求下id为1001、1002的两个人工资为100.0时候的记录

hive (default)> select id,money,type from winfunc where id=1001 or id=1002 and money=100.0;
OK
id	money	type
1001	100.0	ABC
1001	150.0	BCD
1001	200.0	CDE
1001	150.0	DEF
1002	100.0	BCD
Time taken: 0.13 seconds, Fetched: 5 row(s)

发现结果并不是我们想要的,为什么呢?其实是因为or和and优先级不一样导致的,因为and的优先级比or高,所以出现了上面的结果,如果要得到我们想要的结果,该怎么处理呢?

hive (default)> select id,money,type from winfunc where (id=1001 or id=1002) and money=100.0;
OK
id	money	type
1001	100.0	ABC
1002	100.0	BCD
Time taken: 0.147 seconds, Fetched: 2 row(s)

2. cast类型转换

如果想要将上面结果中的money类型转换成int类型,该如何实现呢?

hive (default)> select id,cast(money as int),type from winfunc where (id=1001 or id=1002) and money =100.0;
OK
id	money	type
1001	100	ABC
1002	100	BCD
Time taken: 2.489 seconds, Fetched: 2 row(s)

3. case...when

hive (default)> select case 
              >  when id='1001' then 'tom' 
              >  when id='1002' then 'kitty'
              >  when id='1003' then 'jerry'
              >  else 'others'
              > end
              > from winfunc group by id;

OK
_c0
tom
kitty
jerry
others
Time taken: 1.505 seconds, Fetched: 4 row(s)

4. parse_url

语法:parse_url(string urlString, string partToExtract [, string keyToExtract])。

返回值:string

返回 URL 中指定的部分。 partToExtract 的有效值为: HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.

hive (default)> select 
              > parse_url('http://master:50070/explorer.html#/hive','HOST')
              > from winfunc limit 1;
OK
_c0
master
Time taken: 0.102 seconds, Fetched: 1 row(s)

5. concat

语法: concat(string A, string B…)

返回值: string

说明:返回输入字符串连接后的结果,支持任意个输入字符串

hive (default)> select concat(type,'123')
              > from winfunc limit 3;
OK
_c0
ABC123
BCD123
CDE123
Time taken: 0.103 seconds, Fetched: 3 row(s)

6. concat_ws

语法: concat_ws(string SEP, string A, string B…)

返回值: string

说明:返回输入字符串连接后的结果, SEP 表示各个字符串间的分隔符

hive (default)> select concat_ws('_',type,'123')
              > from winfunc limit 3;
OK
_c0
ABC_123
BCD_123
CDE_123
Time taken: 0.99 seconds, Fetched: 3 row(s)

此外,concat_ws也可以处理数组,例如:

hive (default)> select concat_ws('_',split(type,''))
              > from winfunc limit 1;
OK
_c0
_A_B_C_
Time taken: 0.125 seconds, Fetched: 1 row(s)

先将winfunc表中的第一行的type列的值通过split函数来切分成一个数组,然后通过concat_ws来将该数组中的没两个元素之间加上“_”。

7. collect_set

collect_set(x) - Returns a set of objects with duplicate elements eliminated

hive (default)> select collect_set(id)
              > from winfunc;

OK
_c0
[1001,1002,1003,1004]
Time taken: 1.546 seconds, Fetched: 1 row(s)

8. collect_list

collect_list(x) - Returns a list of objects with duplicates

Time taken: 1.546 seconds, Fetched: 1 row(s)
hive (default)> select collect_list(id)
              > from winfunc;

OK
_c0
[1001,1001,1001,1001,1002,1002,1002,1002,1002,1002,1003,1003,1004]
Time taken: 2.894 seconds, Fetched: 1 row(s)

也就是说collect_set会去重,而collect_list不会去重。


hive 50道经典练习 数据 Student(Sid,Sname,Sage,Ssex)学生表 Sid:学号 Sname:学生姓名 Sbirth:学生生日 Ssex:学生性别 Course(Cid,Cname,T#)课程表 Cid:课程编号 Cname:课程名称 Tid:教师编号 SC(Sid,Cid,score)成绩表 Sid:学号 Cid:课程编号 score:成绩 Teacher(Tid,Tname)教师表 T... 阅读详情

相关推荐

50道HIVE练习题-搞定了这50题hive sql,那可不嘚直接通关起飞!!!

大数据自学之hive通关宝典秘籍 超详细的练习过程,赶紧收藏吧! 》》》》》》》》持续跟新中 现有这样几张表及对应数据,请建好表并插入数据 Student(Sid,Sname,Sage,Ssex)学生表 Sid:学号 Sname:学生姓名 Sbirth:学生生日 Ssex:学生性别 Course(Cid,Cname,T#)课程表 Cid:课程编号 Cname:课程名称 Tid:教师编号 SC(Sid,Cid,score)成绩表 Sid:学号 Cid:课程编号 score:成绩 Teacher(Tid,Tn

北慕辰的博客,欢迎各位大佬光临!! 1万+

【Hive】Hive练习题50道

数据展示 student表 score表 teacher表 course表 在hive中建表导入数据 首先要先在hdfs上为每个数据建一个文件名相同的文件夹,以上的4张表都是txt格式的,放入hdfs相对应的文件夹后,使用以下语句建表(因为数据量不大,就直接建内部表) create table if not exists student( id int, name string, birthday string, sex string ) row format delimited fields te

HR的博客 1万+

Hive 初级练习 50 题(完美解答版)

Hive 经典练习 50题(完美解答版)原始数据student.csvcourse.csvteacher.csvscore.csv数据清洗1、上传数据2、导入数据3、清洗数据4、验证数据练习 50 题1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)5、查询所有同学的学生编号、学生姓

GodSuzzZ的博客 1万+

hive练习

Hive练习 部门信息表 create table if not exists dept( deptno int, dname string, loc int ) row format delimited fields terminated by ','; 员工信息表 create table if not exists emp( empno int, ename string, job string, mgr int, hiredate string, sal double, comm double,

Joker_Jiang3的博客 1738

hive经典练习50题

hive经典练习50题数据展示在hive中建表导入数据1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数2.查询"01"课程比"02"课程成绩低的学生的信息及课程分数3.查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4。查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩 – (包括有成绩的和无成绩的)5.查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩6.查询"李"姓老师的数量7.查询学过"张三"老师授课的同学的信息8.查询没学过"张三"老师授课的同学的信息9

dd1296的博客 5154

HQL语句练习题(hive练习题)

说明:以下50题为hive的写法,与mysql写法有一定差别,可供练习hive语句使用。 数据 student 01 赵雷 1990-01-01 男 02 钱电 1990-12-21 男 03 孙风 1990-05-20 男 04 李云 1990-08-06 男 05 周梅 1991-12-01 女 06 吴兰 1992-03-01 女 07 郑竹 1989-07-01 女 08 王菊 1990...

ll谢安生的博客 6652

HiveSQL练习(初级40题,含数据及答案)

初级hivesql练习40题,含数据及答案

xtsheng123456的博客 1458

Hive练习

Hive50道练习题 一、建库建表,插入数据 – 建库 create database if not exists test; use test; – 建表 – 课程表 create table if not exists course(course_id int,course_name string,teacher_id int); – 分数表 create table if not exists score(student_id int,course_id int,score int); – 学生表 c

qq_48395735的博客 634

Hive常见的练习题

Hive常见的练习题 1. 测试数据 -- student s_id s_name s_birth s_sex 01 赵雷 1990-01-01 男 02 钱电 1990-12-21 男 03 孙风 1990-05-20 男 04 李云 1990-08-06 男 05 周梅 1991-12-01 女 06 吴兰 1992-03-01 女 07 郑竹 1989-07-01 女 08 王菊 1990-01-20 女 -- course c_id c_course t_id 01 语文 02 02 数学 01

大数据进阶之路 1578

20道Hive SQL经典训练提升题

20道经典hive sql基础面试题

数据与算法架构提升之路专栏 3243

hive练习数据和练习题及答案

hive练习数据和hive练习题包含了hive练习数据,hive数据的建表ddl和hive练习题,非常适合做hive练习,新手培训,快速入门等; 包含以下练习: hive的group by 和集合函数 hive的Order By/Sort By/Distribute By Join查询,join只支持等值连接 LEFT,RIGHT 和 FULL OUTER JOIN LEFT SEMI JOIN Hive当前没有实现 IN/EXISTS 子查询,可以用 LEFT SEMI JOIN 重写子查询语句。

hive的练习题

hive的练习题 1:编写sql实现每个用户截止到每月为止的最大单月访问次数和累 计到该月的总访问次数 数据: userid,month,visits A,2015-01,5 A,2015-01,15 B,2015-01,5 A,2015-01,8 B,2015-01,25 A,2015-01,5 A,2015-02,4 A,2015-02,6 B,2015-02,10 B,20...

weidajiangjiang的博客 5077

油气井管柱力学发展

油气井管柱力学发展 1 石油管柱力学问题的发复杂性 1)油气管柱动力学的非线性 钻井中钻柱在重力、钻压、扭矩、钻井液浮力和井壁约束等作用下,产生三维变形。一方面随井眼轴线的弯曲而弯曲,这一变形被称为管柱的初位移;另一方面,管柱在运动过程中相对井眼轴线也有变形,这种变形被称为计算位移。管柱大变形主要表现在初位移部分,计算位移相对很小。大曲率井眼中管柱产生大挠度,但管柱很长且柔软性较好,变形一般仍保持...

weixin_43831995的博客 953

【Hive】Hive练习题(一)

众所周知,Hive的窗口函数可谓是博大精深,所以为了巩固一下大家的窗口函数的使用,我给大家收集了一些关于窗口函数简单使用的题,以供大家学习! 题目如下???? (1)查询在2017年4月份购买过的顾客及总人数 (2)查询顾客的购买明细及月购买总额 (3)上述的场景,要将cost按照日期进行累加 (4)查询顾客上次的购买时间 (5)查询前20%时间的订单信息 数据如下???? create table bu...

Together 6743

平行趋势检验没通过怎么办?别慌,试试三重差分DDD与事件研究法

本文探讨了当平行趋势检验未通过时,如何运用三重差分法(DDD)与事件研究法进行政策评估。通过Stata代码示例和实战案例,详细介绍了DDD的原理、适用场景及实现步骤,并提供了替代方案如合成控制法和匹配DID,帮助研究者获得更准确的因果推断结果。

weixin_28732953的博客 618

Oracle 19c RAC安装踩坑实录:OpenSSH 8.x版本与OUI的“兼容性战争”及一劳永逸的解决思路

本文深入解析Oracle 19c RAC在Linux8环境中部署时遇到的OpenSSH 8.x版本兼容性问题,特别是[INS-06006]错误的根源与解决方案。从协议层分析冲突本质,提供SCP包装器技术、官方补丁应用指南及现代化部署体系构建三种解决方案,帮助企业高效完成RAC安装并规避类似问题。

weixin_42648844的博客 459

Hive 练习题

Hive练习题 数据 2018/6/1,10 2018/6/2,11 2018/6/3,11 2018/6/4,12 2018/6/5,14 2018/6/6,15 2018/6/7,13 2018/6/8,37 2018/6/9,18 2018/6/10,19 2018/6/11,10 2018/6/12,11 2018/6/13,11 2018/6/14,12 2018/6/15,14 结果...

Tate的博客 1698

OSGEarth 基于鼠标位置缩放

说明 osgearth 原有漫游器EarthManipulator 不支持此功能,所以需要修改此漫游器代码,其中主要原理就是在缩放的同时也要改变当前漫游器中心焦点的位置,从而保持鼠标指定点的位置缩放是不改变。 核心代码修改部分 EarthManipulator 的头文件zoom方法添加参数view /** * Zoom the camera using delt...

Rsoftwaretest的专栏 3785

一定要学习的Hive SQL的50道练习题

文章目录写在前面建表准备建表生成数据导入数据到hive需求1.查询课程编号为“01”的课程比“02”的课程成绩高的所有学生的学号(重点):2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数(重点):3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩(重点):4、查询平均成绩小于60分的同学的学生编号和学生姓名和平均成绩:(包括有成绩的和无成绩的)5、查询所有同学的学生编号、学生姓名、选课总数、所有课程的总成绩:6、查询"李"姓老师的数量:7、查询学过"张三"老师授课的同学的信息(

啊晨 1万+

APB Timer验证环境搭建——学习笔记(1)

以下为个人学习笔记,如有疏漏,请大家指正补充~~APB Timer是一个简单的下行计数器,包括一个32位计数器和一组比较器,可以实现多种计时功能。包括生成一次性中断或者定时中断。

qq_41651535的博客 1579

Carla运行显示The following component(s) are required to run this program:DirectX Runtime |nvapi64.dll没有被

Carla运行显示The following component(s) are required to run this p 参考: 【1】EPIC 启动游戏提示The following component(s) are required to run this program:... - 『悬赏问答区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cnhttps://www.52pojie.cn/thread-1485651-1-1.html ...

anananajiushiwo的博客 5万+

Hive练习题答案

Hive20道练习题及答案 练习: 一:将下列数据加载hive表。 员工信息表emp: 字段:员工id,员工名字,工作岗位,部门经理,受雇日期,薪水,奖金,部门编号 英文名:EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,BONUS,DEPTNO create table emp( EMPNO int ,ENAME string ,JOB string ,MGR int ,HIREDATE string ,SAL int ,BONUS int ,DEPTNO int ) row forma

qq_48799664的博客 1717

在Windows10上安装WSL2

WSL2是微软提供的Windows子系统,允许在Windows 10和11上运行Linux环境,提供更好的性能和兼容性。安装WSL2需要启用WSL功能、更新系统、安装WSL2内核,并设置为默认版本。之后,可以通过Microsoft Store安装Linux发行版,并使用WSL命令启动和管理它们。

howard2005的专栏 5943

Hadoop+Hive+Spark+Hbase开发环境练习

exam202011;useexam202011;idstringintintrecordDatestringstringstringcontinentstring',';keystringstringintstored bywithtbasselectcontinentrecordDatedense_rank()overcontinentrecordDateorder by。

weixin_63713552的博客 1932

把事务数据变成可分析数据:用 ABAP CDS 构建 Cube View 与 Query View,并拆解 OData 取数的底层路径

ABAP CDS分析建模:Cube与Query视图的实践解析 本文探讨了ABAP CDS分析建模中Cube View与Query View的核心区别与应用场景: 架构定位 Cube View作为分析型数据源,定义维度和度量的基础语义 Query View作为消费投影,控制查询可见字段和聚合逻辑 关键实现 通过@Analytics.dataCategory: #CUBE声明分析数据源 使用@DefaultAggregation确保指标口径一致性 @Analytics.query: true启用分析引擎特性 运

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 142

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

hive练习题

hive练习题 记录一下做的hive练习题,有需要请自行练习,附答案。 数据 1.员工信息表emp: 字段:员工id,员工名字,工作岗位,部门经理,受雇日期,薪水,奖金,部门编号 英文名:EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,BONUS,DEPTNO 7369,SMITH,CLERK,7902,1980-12-17,800,null,20 7499,ALLEN,SALESMAN,7698,1981-02-20,1600,300,30 7521,WARD,SALESMAN,7698

忻辰的博客 627

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Hive--行转列(Lateral View explode())和列转行(collect_set() 去重)
下一篇: Hive--自定义函数
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值