2017-02-18 105 views
0

我正在閱讀一個csv文件,並將這些數據分組後,我正在做一個計數操作。如果計數爲0,是否有任何方法將數據存儲到文件夾名稱中,如果計數大於0,那麼將數據存儲到文件夾中的名稱會很好。我試着用下面的代碼,但它沒有發生。阿帕奇豬根據條件商店

CODE : 

STORE countVal INTO '/user/cloudera/good' IF countVal > 0 ; 

回答

0

USE function SPLIT。參見:

https://pig.apache.org/docs/r0.7.0/piglatin_ref2.html#SPLIT

SPLIT A INTO X IF f1<7, Y IF f2==5, Z IF (f3<6 OR f3>6); 
+0

如果我這樣做,那麼每次創建兩個文件夾。但我想,如果countValue是0,那麼整個文件將被存儲到壞的文件夾,否則將進入良好的文件夾。這意味着當我運行它一次,無論是良好的文件夾創建或壞。 –

0

有一對夫婦的方式是:

1)使用分割功能進行基於標準的分裂。

如果計數> 0,SPLIT數據轉換爲良好,如果(計數== 0)則返回錯誤;

2)使用BinCond操作符,使用FOREACH循環根據條件分離數據。 X = FOREACH A GENERATE,data,(count> 0?「good」:「bad」);

+0

我有兩個文件夾的好壞,我將如何使用BinCond運算符存儲?如果將count> 0的整個文件移動到「good」文件夾中,那麼我必須將整個文件移動到「bad」文件夾。 –