----hive 基本操作
1-------------数据自己造
a表:(id int,name string)
b表:(id int,job_id int,num int)
c表:(job_id int,job string)
--建表语句
--加载数据
---------a表和b表进行链接操作,并观察结果--------------
--内连接
-- 左连接 left join 小表在前,大表在后 比较常用
-- 右连接 right join 不常用
-- 全连接 full join
--查找人名和对应工作
--使用join 3表关联
--找出姓名对应的工作,没有显示无业 没有工作的人显示'无业' 对应job_id 没有job的显示无业
2-------------
person:(name string,station int)
ticket:(station int,price int)
--建表
--加载数据
--按照站数算对应价格 每个人车票多少钱
-- 10站以上打8折 每个人车票多少钱
--5站到10站打9折、11站以上打8折 每个人车票多少钱
3-------------
class:(name string,class string)
score:(name string,chinese int,math int)
--创建表
--加载数据
--问题:计算每个班的语文总成绩和数学总成绩,要求有哪科低于60分,该名学生成绩不计入计算.
4.数据
vi pt_stu_nan.txt 男性信息表
095041211001,xiaopan,21
095041211029,xiaopeng,18
095041211089,xiaohong,13
vi pt_stu_nv.txt 女性信息表
095041211011,zhangyan,21
095041211034,xiaoli,18
095041211056,xiaoxin,13
--创建分区表
--添加分区
--添加多个分区
--查看分区
--查看一个分区的描述
--加载数据
--删除分区
5.数据:
vi stu.txt
095041211001,xiaopan,21,nan
095041211029,xiaopeng,18,nan
095041211089,xiaohong,13,nan
095041211011,zhangyan,21,nv
095041211034,xiaoli,18,nv
095041211056,xiaoxin,13,nv
--创建一个普通外部表关联上面的数据
--创建一个分区表 要求按照性别进行分区
--添加分区 并且从普通表将数据添加到分区表 两种方式:动态 静态方式
--查询每一个分区表的数据
6.在数据已经落地的情况下,如何创建一个分区表管理已经落地的数据。
--模拟落地数据
mkdir -p /home/hadoop/hivedata/2017/07/28
--将上面的stu.txt 复制到目录
cp ./stu.txt /home/hadoop/hivedata/2017/07/28
要求:按数据存储目录的日期分区 如何创建分区表关联这个数据
7.数据:
vi workers.txt
1 xiaoA nan 21
2 xiaoB nv 24
3 xiaoC nan 21
4 xiaoD nan 21
5 xiaoE nan 21
6 xiaoF nv 26
7 xiaoG nan 21
8 xiaoH nan 21
9 xiaoI nv 27
10 xiaoJ nv 29
11 xiaoK nan 21
12 xiaoM nv 21
---创建一个表关联上面的数据
--加载数据
--创建一个分桶表 分桶字段为id 桶个数 4
--将普通表中的数据插入到分桶表中
Hive练习题目
最新推荐文章于 2023-09-30 18:33:49 发布