Hive几种导出数据方式

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

你可能感兴趣的:(hive,数据导出)