0

Скажем, у меня есть таблица F, состоящая из следующих столбцов:Использование условного оператора Pig для реализации или?

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

Я хочу, чтобы создать новый столбец, с, что равно а | б.

Я попытался следующие:

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) 
Смежные вопросы