2011-03-11 6 views
1

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

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

Любая идея?

Благодаря

Даниэле

ответ

0

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

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

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

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

2

Принимая во внимание то, что сказано frail, MultiStorage, в PiggyBank, похоже, то, что вы ищете.