Разбор PDF-файлов в Hadoop Map Reduce - PullRequest
5 голосов
/ 24 февраля 2012

Мне нужно проанализировать PDF-файлы, находящиеся в HDFS, в программе уменьшения карт в Hadoop. Поэтому я получаю PDF-файл из HDFS как Входные данные разбиваются , и его необходимо проанализировать и отправить в класс Mapper. Для реализации этого InputFormat я прошел по этой ссылке . Как эти входные разбиения могут быть проанализированы и преобразованы в текстовый формат?

Ответы [ 2 ]

6 голосов
/ 25 февраля 2012

Обработка файлов PDF в Hadoop может быть выполнена путем расширения класса FileInputFormat .Пусть класс, расширяющий его, будет WholeFileInputFormat.В классе WholeFileInputFormat вы переопределяете метод getRecordReader ().Теперь каждый PDF-файл будет получен как Индивидуальный входной сплит .Затем эти отдельные разбиения могут быть проанализированы для извлечения текста.Эта ссылка дает четкий пример понимания того, как расширить FileInputFormat.

1 голос
/ 24 февраля 2012

Это зависит от ваших расколов. Я думаю (может быть неправильно), что вам понадобится каждый PDF в целом, чтобы разобрать его. Для этого есть библиотеки Java, и Google знает, где они находятся.

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

...