2015-05-28 3 views
1

У меня есть Pig UDF, который преобразует символы Ebcidic в ASCII в мой файл данных, разделенный на канал. У меня есть сотни столбцов, и я хочу, чтобы мой UDF применялся на 70-й колонке. Как я могу применить UDF к этому конкретному столбцу и получить данные столбца как ASCII в наборе данных.Применить Pig UDF на один столбец и автоматически генерировать все остальные столбцы

REGISTER pigudf-0.0.1.jar; 
DEFINE Ebc2Asc com.z.pig.udf.Ebc2Asc; 

A = LOAD '/user/T4/cobDump.txt' USING PigStorage('|'); 
B = FOREACH A GENERATE Ebc2Asc($71) as txt:chararray; 
DUMP B; 

Если мы вызываем скрипт, как указано выше, я получаю только преобразованный столбец как часть результата. Как я могу получить все столбцы вместе с применяемым столбцом udf.

Любая помощь приветствуется.

ответ

2

Прошло некоторое время, но похоже, что вы хотите использовать range projection для автоматического создания других столбцов. Он должен выглядеть примерно так:

B = FOREACH A GENERATE $0 .. $70, Ebc2Asc($71) as txt:chararray, $72 .. ; 
+0

Спасибо, что я и ищу. – Abhi

Смежные вопросы