Hive几种导出数据方式
1.拷贝文件
如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以。
hadoop fs –cp source_path target_path
2.导出到本地文件系统
--不能使用insert into local directory来导出数据,会报错
--只能使用insert overwrite local directory来导出数据
--hive0.11版本之前,只能使用默认分隔符^A(ascii码是\00001)
insert overwrite local directory '/home/sopdm/wrk'
select id,name,tel,age from sopdm.wyp;
--hive0.11版本之后,可以指定分隔符
insert overwrite local directory '/home/sopdm/wrk'
row format delimited
fields terminated by ','
select id,name,tel,age from sopdm.wyp;
--导出数据到多个输出文件夹
from employees se
insert overwrite local directory ‘/tmp/or_employees’
select * se where se.cty=’US’ and se.st=’OR’
insert overwrite local directory ‘/tmp/ca_employees’
select * se where se.cty=’US’ and se.st=’CA’
3.导出到HDFS
--比导出文件到本地文件系统少了一个local
insert overwritedirectory '/home/sopdm/wrk'
select id,name,tel,age from sopdm.wyp;
--hive0.11版本之后,可以指定分隔符
insert overwritedirectory '/home/sopdm/wrk'
row format delimited
fields terminated by ','
select id,name,tel,age from sopdm.wyp;
4.导出到hive的另一张表
insert into table sopdm.wyp2
partition(age='25')
select id,name,tel,age from sopdm.wyp;
5.使用hive的-e和-f参数命令导出数据
--使用hive的-e参数
hive –e “select * from wyp” >> /local/wyp.txt
--使用hive的-f参数, wyp.hql中为hql语句
hive –f wyp.hql >> /local/wyp2.tx
注: 这种导出方式能够将数据导出到一个文件,前面几种导出方式是可能会生成多个文件
本文转自:http://gaoxianwei.iteye.com/blog/2158475