实验课程

THIS NAME

实验课程

当前位置: 首页 >> 实验课程 >> 正文

分布式数据库-Hive实验

发布日期:2024-08-19    作者:王清洋     来源:     点击:

Hive实验

一、实验目的

学习Hive中常用的select操作。

二、实验设备与器件

PC机、Tempo大数据成长平台

三、实验内容

关知识

为了完成本关任务,你需要掌握:

select语法格式;

常用的select语法。

select 语法格式

Hive select操作的语法与SQL-92规范几乎没有区别,其格式语法为:

SELECT [ALL | DISTINCT] select_expr,select_expr,… FROM table_reference[WHERE where_condition] [GROUP BY col_list] [CLUSTER BY col_list | [DISTRIBUTE BY col_list] [SORT BY col_list]] [LIMIT number]

 

select 与各种属性的组合

简单的select查询操作,假如有张学生表,如下面的查询操作返回students表中所有的行和列:

select * from students;

 

WHERE子句的select条件查询操作,返回满足WHERE指定条件的行。假如有用户信息表users,有年龄字段age、国籍字段state。下面语句表示从用户信息表users表中查询年龄大于10岁且国籍为中国的用户信息:

select * from users where age > 10 and state = "China";

 

1

ALLDISTINCT关键字的查询操作作用于确定是否返回重复的行,默认为ALL,即select查询返回重复的行。

假如有表t1(coll int,coll2 int),数据为(1,3),(1,3),(1,4),(2,5),则有如下查询:

select coll,coll2 from t1;
                    1 3
                    1 3
                    1 4
                    2 5select distinct coll,coll2 from t1;
                    1 3
                    1 4
                    2 5select distinct coll from t1;
                    1
                    2

 

HAVING关键字的查询操作用于代替复杂的子查询操作。
假设如上表结构不变,如下查询操作:

select coll from (select coll,sum(col2) as col2sum from t1 group by coll) t2 where t2.col2sum > 10;

 

可以替换为:

select coll from t1 group by col1 having sum(col2) >10;

 

1

LIMIT关键字的查询操作用于返回指定数目的满足条件记录(常用于返回Top n 问题)。假如对上面t1表查询返回前5条数据,则用如下语句:

select * from t1 limit 5;

 

1

假如需要查询根据指定条件的Top n问题,则需要用SORT BY col_list [ASC|DESC]语法。如查询t1表中col1的值最大的5条记录:

select * from t1 sort by col1 desc limit 5;

 

程要求

请在右侧Begin-End区域中补全代码完成以下任务:

切换到test2数据库;

查询student表中所有的行和列;

查询年龄age > 17的女生female

查询语文成绩Chinese > 90的记录;

student表中查询前3条记录;

返回按年龄降序的前2条记录。

1.按照以上要求填写命令。每个要求对应1条命令,共6条命令,以;隔开。
2.
由于hive启动时间较长,测评时请耐心等待,大概需要时间:1-3分钟。
3.
右侧命令行仅供练习使用,若要进行通关评测,请切换回编译器。

test2数据库中student表结构为:

INFO

TYPE

COMMENT

Sno

INT

student   sno

name

STRING

student   name

age

INT

student   age

sex

STRING

student   sex

score

STRUCT   <Chinese:FLOAT,Math:FLOAT,English:FLOAT>

student   score

中的数据为:

          IMG_256

试说明

在按编程要求完成操作后,请点击评测按钮,系统会自动对你的操作进行评测。
当你的结果与预期输出一致时,即为通过。

期输出:

1         Xiaohong  18        female          {"chinese":96.0,"math":88.0,"english":90.5}
2         Xiaoliang 17        male          {"chinese":95.0,"math":88.0,"english":93.5}
3         Xiaoming  19        male          {"chinese":86.5,"math":98.0,"english":91.0}
4         Xiaoguang 18        male          {"chinese":88.0,"math":80.0,"english":94.0}
5         Xiaohua   16        female          {"chinese":97.0,"math":58.5,"english":88.0}
1         Xiaohong  18        female          {"chinese":96.0,"math":88.0,"english":90.5}
1         Xiaohong  18        female          {"chinese":96.0,"math":88.0,"english":90.5}
2         Xiaoliang 17        male          {"chinese":95.0,"math":88.0,"english":93.5}
5         Xiaohua   16        female          {"chinese":97.0,"math":58.5,"english":88.0}
1         Xiaohong  18        female          {"chinese":96.0,"math":88.0,"english":90.5}
2         Xiaoliang 17        male          {"chinese":95.0,"math":88.0,"english":93.5}
3         Xiaoming  19        male          {"chinese":86.5,"math":98.0,"english":91.0}
3         Xiaoming  19        male          {"chinese":86.5,"math":98.0,"english":91.0}
4         Xiaoguang 18        male          {"chinese":88.0,"math":80.0,"english":94.0}

 

预期输出说明:

1-5行返回的是查询student表中所有的行和列的结果

6行返回的是查询年龄age > 17的女生female的结果

7-9行返回的是查询语文成绩Chinese > 90的记录的结果

10-12行返回的是从student表中查询前3条记录的结果

12-13行返回的是返回按年龄降序的前2条记录的结果

 

上一条:大数据可视化-基于Python的回归图的绘制 下一条:MATLAB原理与应用-熟悉MATLAB工作环境

关闭