HQL入门(二)

HQL入门--加载数据

前沿

查看hive和基本DDL语句可以查看之前文章

  1. Hive安装
  2. HQL入门(一)

load命令加载数据

准备工作

-- 创建表 
CREATE TABLE tabA ( id int ,name string ,area string ) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;

在这里插入图片描述

--创建文件(/opt/data/sourceA.txt)
1,fish1,SZ 
2,fish2,SH
3,fish3,HZ
4,fish4,QD
5,fish5,SR

拷贝文件到 HDFS

hdfs dfs -put sourceA.txt /user/

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

装载数据

从本地装载数据

LOAD DATA LOCAL INPATH '/opt/data/sourceA.txt' INTO TABLE tabA;

在这里插入图片描述
在这里插入图片描述
此时本地文件还在
在这里插入图片描述

从hdfs中加载文件

LOAD DATA INPATH '/user/sourceA.txt' INTO TABLE tabA;

在这里插入图片描述
在这里插入图片描述
hdfs查看文件是否存在–文件已经不存在了
在这里插入图片描述

加载数据覆盖表中已有数据

LOAD DATA LOCAL INPATH '/opt/data/sourceA.txt' OVERWRITE INTO TABLE tabA;

在这里插入图片描述

创建表时加载数据

hdfs创建目录准备数据

hdfs dfs -mkdir /user/hive/tabB
hdfs dfs -put sourceA.txt /user/hive/tabB

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

--创建表的时候指定location
CREATE TABLE tabB ( id INT ,name string ,area string ) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
Location '/user/hive/tabB';

在这里插入图片描述

insert 插入数据

准备工作

-- 创建分区表 
CREATE TABLE tabC ( id INT ,name string ,area string )
partitioned by (month string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

在这里插入图片描述

插入数据

普通插入

insert into table tabC 
partition(month='202001') 
values (5, 'wangwu', 'BJ'), 
(4, 'lishi', 'SH'), 
(3, 'zhangsan', 'TJ');

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

将已有数据插入

insert into table tabC partition(month='202002') 
select id, name, area from tabC where month='202001';

这里不能用select * from 因为会把分区键伪劣弄出来
在这里插入图片描述

多表(多分区)插入模式

from tabC 
insert overwrite table tabC partition(month='202003') 
select id, name, area where month='202002' 
insert overwrite table tabC partition(month='202004') 
select id, name, area where month='202002';

在这里插入图片描述

创建表并插入数据

create table if not exists tabD as select * from tabC;

在这里插入图片描述
tabD不是分区表

至此HQL语句中装载数据完成,下一篇讲解数据导出.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值