一.保存結果到本地
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;