2017-02-18 106 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”文件夹。 –