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