2016-06-28 12 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' –

相關問題