2016-06-28 13 views
0

我使用大型数据集PIG 0.12,我需要建立一个分类变量如PIg:如何创建一个分类变量?

FOREACH mydata GENERATE category = 1 IF condition1 
         category = 2 IF condition2 
         category = 3 IF condition3 

这句法不起作用。在猪身上可以这样做吗?

谢谢!

回答

1

根据该条件的复杂性,有一些解决方案在这里:

bincond

(condition ? value_if_true : value_if_false) 

case

X = FOREACH A GENERATE f2, (
    CASE f2 % 2 
    WHEN 0 THEN 'even' 
    WHEN 1 THEN 'odd' 
    END 
); 

udf

FOREACH mydata GENERATE category_udf(field_2b_checked) 
+0

谢谢!在'CASE'解决方案中,我可以使用'matches'作为条件吗?有可能命名该变量?在你例如even/odd的变量没有任何名字 –

+1

@Noobie Pig不支持变量!但是我们所能做的就是给一个领域分配一个值。猪只是一个数据流引擎。 – 54l3d

+0

一个变量,一个关系大致相同。我的意思是当你写'generate x = a +2 as myvar' –

相关问题