RICH-ATONE

保存Hive查询结果到指定文件

一.保存结果到本地 

1.这个方法最为常见,sql的查询结果将直接保存到/tmp/out.txt中
$ hive -e "select user, login_timestamp from user_login" > /tmp/out.txt

2.当sql脚本过多时,也可以使用 -f  sql文件名 ,按下面的方式执行查询,并保存结果
$ hive -f test.sql > /tmp/out.txt 

3.INSERT OVERWRITE LOCAL DIRECTORY ‘路径’ select * from test;
该语句是将datas中的数据导出到本地的路径中。
INSERT OVERWRITE LOCAL DIRECTORY ‘路径’ ROW FORMAT DELIMITED FIELDS TERMINATED by ‘,’ select * from test;
该语句是将datas中的数据以逗号“,”为分隔符导出到本地路径中。

这条HQL的执行需要启用Mapreduce完成,运行完这条语句之后,将会在本地文件系统的/tmp/out/目录下生成文件,这个文件是Reduce产生的结果(这里生成的文件名是000000_0)

二.保存结果到hdfs或者hive临时表中
1.INSERT OVERWRITE DIRECTORY ‘路径’ select * from test;
与保存到本地的差别,,保存到hdfs时命令不需要指定LOCAL项


2.已经建好表 直接查询插入到hive表中
hive> insert overwrite table query_result     
    > select user, login_time from user_login
hive在原有的结果上追加到表中
hive> insert into table query_result
    > select * from query_result;
3.如果需要新建表,将查询结果导出到新建的表中,可以使用 create table tmp as select XXX
hive> create table query_result 
    > as
    > select user, login_time from user_login;
 

posted on 2020-10-26 15:03  RICH-ATONE  阅读(2551)  评论(0编辑  收藏  举报

导航