Генерация нескольких выходов с Hadoop Pig - PullRequest
1 голос
/ 11 марта 2011

У меня есть этот файл, содержащий список данных в Hadoop. Я создал простой скрипт Pig, который анализирует файл по номеру id и так далее ...

Последний шаг, который я ищу, заключается в следующем: я хотел бы создать (сохранить) файл для каждого уникального идентификатора . Так что это должно зависеть от группового шага ... однако я не понял, возможно ли это (может быть, есть специальный модуль хранилища?).

Есть идеи?

Спасибо

Daniele

Ответы [ 2 ]

2 голосов
/ 14 марта 2011

Учитывая то, что говорит хрупкий, MultiStorage в PiggyBank, похоже, то, что вы ищете.

0 голосов
/ 12 марта 2011

для получения вывода (файла или чего-либо еще) вам необходимо присвоить данные переменной, вот как она работает с STORE. Если идентификаторы ограничены и конечны, вы можете FILTER их один за другим, а затем STORE их. (Я всегда делаю это для типов действий, которые составляют около 20-25).

Но если вам нужно получить каждый уникальный идентификатор, то создайте 2 файла. 1 с целыми данными, сгруппированными по id, 1 с просто уникальными идентификаторами. Затем попробуйте сгенерировать 1 (или более, если у вас слишком много) сценариев PIG, которые FILTER BY с этим идентификатором. Но это плохое решение. Предполагая, что вы сгруппируете 10 идентификаторов в сценарии PIG, у вас будет (10 уникальных идентификаторов) 10 сценариев PIG для запуска.

Остерегайтесь того, что Hdfs плохо справляются со слишком большим количеством маленьких файлов.

Edit: Лучшим решением будет GROUP и SORT по уникальному идентификатору большого файла. Затем, после его сортировки, вы можете легко разделить содержимое с помощью стороннего скрипта.

...