Apache pig Store 基于条件
Posted
技术标签:
【中文标题】Apache pig Store 基于条件【英文标题】:Apache pig Store based on condition 【发布时间】:2017-02-18 15:59:22 【问题描述】:我正在从 csv 文件中读取数据,并在对这些数据进行分组后进行计数操作。有什么方法可以将数据存储到一个文件夹名称 bad 如果计数为 0 并且如果计数 > 0 则为 good 。我尝试使用以下代码,但没有发生。
CODE :
STORE countVal INTO '/user/cloudera/good' IF countVal > 0 ;
【问题讨论】:
【参考方案1】:使用函数 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);
【讨论】:
如果我喜欢这样,那么每次创建两个文件夹。但我希望如果 countValue 为 0 则整个文件将存储到 bad 文件夹中,否则存储到 good 文件夹中。这意味着当我运行它一次时,要么创建好文件夹,要么创建坏文件夹。【参考方案2】:有几种方法:
1)使用 split 函数根据条件进行拆分。
如果count>0,则将数据拆分为good if (count==0);
2) 使用 FOREACH 循环,使用 BinCond 运算符根据条件分离数据。
X = FOREACH A GENERATE,数据,(count>0?"good":"bad");
【讨论】:
我有两个好的和坏的文件夹,我将如何使用 BinCond 运算符存储?如果计数> 0,我必须将整个文件移动到“好”文件夹,否则我必须将整个文件移动到“坏”文件夹。以上是关于Apache pig Store 基于条件的主要内容,如果未能解决你的问题,请参考以下文章
大数据 hadoop ------ pig hiveMahouthbase