HIve笔记5
DML数据操作
5.1 数据导入
5.1.1 向表中装载数据(Load)
1.语法
hive> load data [local] inpath '/opt/module/datas/studnets.txt' overwrite | into table student
[partition(partcol1 = val1 ...)];
(1)load data:表示加载数据
(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表
(3)inpath:表示加载数据的路径
(4)overwrite:表示覆盖表中已有数据,否则表示追加
(5)into table:表示加载到哪张表
(6)student:表示具体的表
(7)partition:表示上传到指定分区
2.实操案例
通过查询语句向表中插入数据
1,创建一张分区表
create table student (id int, name string ) partitioned by (month string)
row format delimited fileds terminated by '\t';
2.插入数据
insert into table student partition(month = '201709') values (1, 'xxx')
3.基本模式插入(根据单张表的查询结果)
insert overwrite table student partition(month='201708')
select id, name from student where month='201709';
4.多插入模式(根据多张表查询结果)
from student
insert overwrite table student partition(month= ‘201707’)
select id,name where month='201706'
insert overwrite table student partition(month='201706')
select id, name where month='201709';
5.2 数据导出
5.2.1 insert 导出
1.将查询的结果导出到本地
insert overwrite local directory ‘/opt/module/datas/export/student'
select * from student;
2.将查询的结果格式化为导出到本地
insert overwrite local directory ’/opt/module/datas/export/studnet1‘
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' select * from student;
- 将查询的结果导出到HDFS上(没有local)
insert overwrite directory '/user/atguigu/student2'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
select * from student;