Свинья: изменение формата выходного файла NAME - PullRequest
0 голосов
/ 16 июля 2011

Я использую конвейер упругого преобразования карт, который использует выходные данные из нескольких сценариев PIG. По сути, выходные данные сценария PIG хранятся в определенном месте на S3, и, поскольку размер данных огромен, созданные выходные файлы называются part-xxxxx.

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

По умолчанию pig генерирует мои выходные файлы в указанном месте с таким форматом для имени файла. Сначала я загружал выходные файлы pig на свой диск, писал программу на python, чтобы переименовывать их, и загружал их обратно на S3. Я не могу сделать это сейчас из-за огромного количества данных.

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 июля 2016

Вы можете изменить это несколько используя:

set mapreduce.output.basename 'MyDesiredPrefixName-';   /*  This changes the part-r-0000 to a customized name */
0 голосов
/ 24 июля 2011

Я не уверен, что вы можете изменить префикс в pig.

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

если вам действительно нужно, хотя вы можете сделать переименование самостоятельно, используя hadoop, используя потоковое задание, где потоковой командой является 'hadoop fs -cp'. дайте мне знать, если вы еще не видели такой подход, и я могу написать его в виде поста в блоге, в любом случае имело значение ...

мат

...