В Pig я пытаюсь заполнить значение поля, используя условие о другом поле.
Я пытаюсь сделать что-то вроде этого, где t1 - результат некоторых предыдущих операций:
t2 = FOREACH t1 GENERATE
t1::f1 AS f1,
t1::f2 AS f2,
(((t1::f3 IN (20,40,80))) ? 'NULL' : t1::f4) AS f4,
t1::f3 AS f3;
Если я заменим этот оператор IN () на несколько OR, код сработает. Если я этого не сделаю, я получу NoViableAltException.
Я бы предпочел иметь этот оператор IN, потому что в будущем нам может понадобиться увеличить количество чисел. Это также легче читать. Можно ли сделать эту работу?