0

比方說,我有一些表F,由下列列:使用Pig條件運算符來實現或?

a, b 
0, 1 
0, 0 
0, 0 
0, 1 
1, 0 
1, 1 

我想創建一個新列,C,也就是等於|灣

我已經試過如下:

f = foreach f generate a, b, ((a or b) == 1) ? 1 : 0 as c; 

但收到以下錯誤:

ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: Pig script failed to parse: NoViableAltException([email protected][]) 

回答

2

OR條件建設是不正確的,你能試試嗎?

f = foreach f generate a, b, (((a==1) or (b==1))?1:0) AS c; 

樣品例如:
輸入:

0,1 
0,0 
0,0 
0,1 
1,0 
1,1 

PigScript:

A = LOAD 'input' USING PigStorage(',') AS (a:int,b:int); 
B = foreach A generate a, b, (((a==1) or (b==1))?1:0) AS c; 
DUMP B; 

輸出:

(0,1,1) 
(0,0,0) 
(0,0,0) 
(0,1,1) 
(1,0,1) 
(1,1,1)