2012-02-24 2 views
5

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

+0

Этот ответ может быть частью того, что вы ищете: http://stackoverflow.com/a/9298965/698839 –

ответ

6

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

1

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

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

+0

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

+0

Также, пытаясь разобрать весь файл в виде одного раскола, не будет ли размер файла, который будет считаться, узким местом? Рассмотрите файл TB по размеру, и если есть один файл, он должен быть проанализирован принудительно на одной машине. как мы преодолеем это узкое место? – WR10

+0

Ну, сначала выясните, действительно ли это так, что вам нужен PDF в целом, чтобы разобрать его. Если нет, это устраняет проблему. Предполагая, что вы не можете разбить его, я думаю, вам нужно передать имена файлов в виде разделов и прочитать прямо из HDFS в вашем картографе. –

Смежные вопросы