我正在阅读一个csv文件,并将这些数据分组后,我正在做一个计数操作。如果计数为0,是否有任何方法将数据存储到文件夹名称中,如果计数大于0,那么将数据存储到文件夹中的名称会很好。我试着用下面的代码,但它没有发生。阿帕奇猪根据条件商店
CODE :
STORE countVal INTO '/user/cloudera/good' IF countVal > 0 ;
我正在阅读一个csv文件,并将这些数据分组后,我正在做一个计数操作。如果计数为0,是否有任何方法将数据存储到文件夹名称中,如果计数大于0,那么将数据存储到文件夹中的名称会很好。我试着用下面的代码,但它没有发生。阿帕奇猪根据条件商店
CODE :
STORE countVal INTO '/user/cloudera/good' IF countVal > 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);
有一对夫妇的方式是:
1)使用分割功能进行基于标准的分裂。
如果计数> 0,SPLIT数据转换为良好,如果(计数== 0)则返回错误;
2)使用BinCond操作符,使用FOREACH循环根据条件分离数据。 X = FOREACH A GENERATE,data,(count> 0?“good”:“bad”);
我有两个文件夹的好坏,我将如何使用BinCond运算符存储?如果将count> 0的整个文件移动到“good”文件夹中,那么我必须将整个文件移动到“bad”文件夹。 –
如果我这样做,那么每次创建两个文件夹。但我想,如果countValue是0,那么整个文件将被存储到坏的文件夹,否则将进入良好的文件夹。这意味着当我运行它一次,无论是良好的文件夹创建或坏。 –