2014-09-29 77 views
0
招聘澄清

地圖減輕蜂巢聲明喬布斯蜂巢地圖降低選擇列

當我查詢以下statment在蜂巢

hive> SELECT * FROM USERS LIMIT 100; 

沒有啓動一個Map Reduce作業,如監守我們從表格中選擇每一件東西,並限制它返回的記錄數

但是當我做以下操作時

hive> select age,occupation from users limit 100; 

它實際上是踢地圖減少工作?

這是否意味着,應用列級別投影需要一個Map reduce Job,?儘管我沒有在其上應用任何類型的過濾器。

+0

的可能重複(http://stackoverflow.com/questions/7466454 /如何-不蜂箱 - 決策 - 時使用的地圖 - 減少 - 和 - 時 - 不來) – 2014-09-29 11:28:33

回答

2

只要你運行一個普通的'select *',就會創建一個fetch任務,而不是一個mapreduce任務,它只是轉儲數據而不做任何事情。這相當於一個:

hadoop fs -cat $file_name 

而當你做一個「選擇列」,地圖作業內部過濾特定的列,並給出了輸出。

0

當您編寫select * from table_name時,查看整個文件,而如果選擇列,則僅啓動地圖作業,因爲我們正在選擇整列,所以不會啓動縮小。

Select * from table_name; --> will not launch a MR JOB 
Select column from table_name; --> will launch a M JOB (map only job) 

Select MAX(column_name) from table_name; - [?如何蜂巢決定何時使用地圖降低,何時不]>將推出MR JOB