您的位置:首页 > 其它

hive-导出数据的方式

2016-07-04 23:08 316 查看
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; 
 

小文件过多的问题,用order  by 1

--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.txt

 
6.导出到关系型数据库

先操控mysql数据库

QUERY=`mysql -h"10.48" -u'biadmin' -p"A34" << EOF

delete from BI_01.st01_fund_trans_rank;

exit

EOF`

sqoop-export   --connect jdbc:mysql://10.:3306/BI_01   --username biin  --password Ab34  --table st01_fund_trans_rank --input-null-string '\\N' --input-null-non-string '\\N' --input-fields-terminated-by '\001' --export-dir /dw/st/st01_fund_trans_rank;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: