Позвоните в службу RESTful в сценарии Pig - PullRequest
0 голосов
/ 24 сентября 2010

Я работаю над сценарием Pig (мой первый), который загружает большой текстовый файл.Для каждой записи в этом текстовом файле содержимое одного поля необходимо отправить в службу RESTful для обработки.Ничего не нужно оценивать или фильтровать.Захватывайте данные, отправляйте их, и сценарию ничего не нужно возвращать.

Я предполагаю, что для такого рода функций требуется UDF, но я достаточно новичок в Pig, поэтому я неиметь четкое представление о том, что тип функции я должен построить.Моим лучшим предположением была бы функция хранения , поскольку данные в конечном итоге где-то сохраняются, но я чувствую, что количество предположений, связанных с приходом к такому выводу, выше, чем хотелось бы.* Любое понимание или руководство будет высоко ценится.

Ответы [ 2 ]

2 голосов
/ 30 сентября 2010

Вы смотрели на DBStorage , который делает что-то подобное?

everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray);
...
STORE ordered INTO RestStorage('https://...');
0 голосов
/ 29 сентября 2010

Не найдя даже намека на ответ, я решил двигаться в другом направлении. Я использую Pig для загрузки и синтаксического анализа большого файла, но затем транслирую каждую запись, которая мне нужна, в PHP для дополнительной обработки, которую, похоже, Pig не может обработать чисто.

Это все еще не завершено (читай: в миксе очень большая, очень несчастная ошибка) , но я думаю, что концепция солидна - просто нужно проработать детали реализации.

everything = LOAD 'categories.txt' USING PigStorage() AS (category:chararray);
-- apply filter
-- apply filter
-- ...
-- apply last filter
ordered  = ORDER filtered_categories BY category;

streamed = STREAM limited THROUGH `php -nF process_categories.php`;
DUMP streamed;
...