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的任務將中間表中數據寫入指定路徑。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章