Как мне прочитать статические файлы в UDF PIG - PullRequest
2 голосов
/ 24 февраля 2011

Я новичок в PIG и Hadoop.Я написал UDF PIG, который работает со строкой и возвращает строку.Я на самом деле использую класс из уже существующего jar, который содержит бизнес-логику в udf.Конструктор класса принимает 2 имени файла в качестве входных данных, которые он использует для построения некоторого словаря, используемого для обработки входных данных.Как заставить это работать в режиме mapreduce Я попытался передать имена файлов в режиме pig local, он работает нормально.Но я не знаю, как заставить его работать в режиме mapreduce?Может ли распределенный кеш решить проблему?

Вот мой код

REGISTER tokenParser.jar

REGISTER sampleudf.jar;


DEFINE TOKENPARSER com.yahoo.sample.ParseToken('conf/input1.txt','conf/input2.xml');

A = LOAD './inputHOP.txt' USING PigStorage() AS (tok:chararray);
B = FOREACH A GENERATE TOKENPARSER(tok);
STORE B into 'newTokout' USING PigStorage();

Насколько я понимаю, tokenParser.jar должен использовать какой-то тип BufferedInputReader.Можно ли заставить его работать без изменения tokenParser.jar

1 Ответ

1 голос
/ 26 февраля 2011

Да, как и в этом подобном вопросе использование распределенного кэша - хороший способ решения этой проблемы.

...