Обработка файлов с заголовками в Hadoop - PullRequest
3 голосов
/ 09 июля 2009

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

Ответы [ 3 ]

4 голосов
/ 09 июля 2009

Я думаю, что лучшее решение - написать пользовательский InputFormat.

1 голос
/ 21 марта 2013

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

Открытая пустая карта (ключ LongWritable, текстовое значение, контекстный контекст) выбрасывает IOException, InterruptedException {

        if(key.get() > 0)
                       {
                         your mapper code
                       }
              }

Итак, он пропустит первую строку файла.

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

Лучший способ - использовать ваш пользовательский формат ввода

0 голосов
/ 20 сентября 2009

Помимо написания пользовательского FileInputFormat, вы также должны убедиться, что файл не является разделимым, чтобы читатель знал, как обрабатывать записи внутри файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...