hive的数据导出方式

hive有三种导出数据的方式

》导出数据到本地
》导出数据到hdfs
》导出数据到另一个表
 
导出数据到本地文件系统
insert overwrite local directory '[desFile]' select * from [srcFile]; 
例: insert overwrite local directory '/home/wyp/wyp' select * from wyp;
 
这数据是导出到本地文件系统(/home/wyp/wyp),将会在本地目录下生成文件,这个因为是mapreduce跑的,所以生成的文件名是part-00000这种的
 
导出数据到hdfs(少了一个local)
insert overwrite local directory '[desFile]' select * from [srcFile];
 
例: insert overwrite directory 'hdfs://路径' select * from wyp;
 
导出数据到另一个hive表中
insert into table descTable partition (age='25') select id, name, tel from srcTable;
 
 
在0.11.0之前的版本,如果是导出数据到文件中,是不能指定列之间的分隔符的,采用的时候默认的分隔符‘~A’
在0.11.0或之后的版本可以指定其列的分隔符,下面sql
insert overwrite local directory '[localPath]'
row format delimited
fields terminated by '\t'
select * from test;

 

如果是map类型可以用下面语句来分割map的key和value
insert overwrite local directory './test-04'
row format delimited
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY ':'
select * from src;

 

 
posted @ 2016-12-26 19:06  卖臭豆腐喽  阅读(594)  评论(0编辑  收藏  举报