hive-导出数据的方式

来源:互联网 发布:软件软件下载 编辑:程序博客网 时间:2024/06/05 19:27
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;


0 0
原创粉丝点击