一、Hive数据导入导出
1、hive数据导出
很多时候,我们在hive中执行select语句,希望将最终的结果保存到本地文件或者保存到hdfs系统中或者保存到一个新的表中,hive提供了方便的关键词,来实现上面所述的功能。
1.将select的结果放到一个的的表格中(首先要用create table创建新的表格)
insert overwrite table test select uid,name from test2;
2.将select的结果放到本地文件系统中
insert overwrite local directory ‘/tmp/reg_3‘ select * a.* from events a;
3.将select的结果放到hdfs文件系统中
insert overwrite directory ‘/tmp/hdfs_out‘ select a.* from invites a where a.ds=‘<date>‘;
2、hive数据导入
1、load data [local] inpath ‘/data/userdata‘ [overwrite] into table user;将本地数据插入到表user中,插入的数据存放在本地的‘/data/userdata‘下
2、创建表的时候直接指定路径
create external table user(id int,name string) row format delimited fields terminated by ‘44‘ lines terminated by ‘12‘ stored as textfile localtion ‘/data/userdata‘;
3、创建表之后也可以导入数据到表中
(1)本机路径
load data local inpath ‘/data/data.txt‘ overwrite into table table_name partition(pt=‘time‘);
(2)Hadoop路径
load data inpath ‘/hadoop/data.txt‘ overwrite into table table_name partition(pt=‘time‘);
上面overwrite关键字会全表覆盖,如果只是想附加数据,将OVERWRITE去掉即可,添加一个分区到表可以利用语句:
alter table table_name add partition(pt=‘partition_name‘) location ‘/hive/pt=partition_name‘;
还可以直接从从其它的表拖数据过来
insert overwrite table table_name select * from table_name1;