2014-01-22 38 views
0

有幾次我有豬工作流存儲多個別名。例如,我有一些大致是阿帕奇豬不必要的重新運行地圖減少作業

A = LOAD 'data1' USING PigStorage() 
B = LOAD 'data2' USING PigStorage() 
C = ... # transformation of A 
D = ... #transformation of B 
E = JOIN C by fieldA, D by fieldB 
# STORE E into 'foo' 
F = ... # transformation of E 
STORE F into 'bar' 

我會想,如果我取消註釋存儲E,那就只能添加一個地圖,減少工作,因爲E的結果應該已經是在一個臨時的Hadoop輸出文件。實際上,它總是添加多個工作,就好像豬正在重新裝載A和B並從頭開始重新計算E.

什麼時候豬需要做到這一點,你怎麼預防呢?

使用版本0.11.0。

回答

1

確保您啓用Multi-Query Optimization和運行此腳本像

bash> pig script.pig 

而不是複製和粘貼代碼到咕嚕外殼。

+0

感謝您的回覆。我沒有觸及多重查詢響應的默認設置,所以我懷疑它已打開,但我會檢查確定。我通過Java PigServer類的registerScript函數通過輸入流重載來運行腳本。 – Manny