1. 程式人生 > >Hive SQL查詢結果寫入指定hdfs路徑

Hive SQL查詢結果寫入指定hdfs路徑

將hive查詢結果寫入指定hdfs路徑下:

set mapred.reduce.tasks = 1;
insert overwrite directory '/xx/xx/'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '~'
select cols...
from tableName
where conditions...
distribute by rand();

設定task數 set mapred.reduce.tasks = 1; 結果資料平均分割槽(分割槽數等於task數)distribute by rand();此時結果儲存在一個檔案中。結果資料每行以“~”分隔 ROW FORMAT DELIMITED FIELDS TERMINATED BY '~'。

如果結果資料不大(需要儲存在一個或較少的幾個檔案)但計算量較大,tasks=1執行較慢,可以將結果先寫入一張中間hive表,再排程tasks=1的任務將中間表中資料寫入指定路徑。