Как анализировать PDF-файлы в программах для уменьшения карт?
Я хочу проанализировать PDF-файлы в моей программе hadoop 2.2.0, и я нашелэтот, следуя тому, что он говорит, и до сих пор у меня есть эти три класса:
PDFWordCount
основной класс, содержащий карту и функции сокращения. (какродной счетчик слов образец, но вместоTextInputFormat
Я использовал свойPDFInputFormat
учебный класс.:PDFRecordReader extends RecordReader
Какая основная работа здесь. Особенно я поставил свойinitialize
функция здесь для большей иллюстрации.
public void initialize(InputSplit genericSplit, TaskAttemptContext context)
throws IOException, InterruptedException {
System.out.println("initialize");
System.out.println(genericSplit.toString());
FileSplit split = (FileSplit) genericSplit;
System.out.println("filesplit convertion has been done");
final Path file = split.getPath();
Configuration conf = context.getConfiguration();
conf.getInt("mapred.linerecordreader.maxlength", Integer.MAX_VALUE);
FileSystem fs = file.getFileSystem(conf);
System.out.println("fs has been opened");
start = split.getStart();
end = start + split.getLength();
System.out.println("going to open split");
FSDataInputStream filein = fs.open(split.getPath());
System.out.println("going to load pdf");
PDDocument pd = PDDocument.load(filein);
System.out.println("pdf has been loaded");
PDFTextStripper stripper = new PDFTextStripper();
in =
new LineReader(new ByteArrayInputStream(stripper.getText(pd).getBytes(
"UTF-8")));
start = 0;
this.pos = start;
System.out.println("init has finished");
}
(Вы можете увидеть мойsystem.out.println
для отладки. Этот метод не в преобразованииgenericSplit
вFileSplit
, Последнее, что я вижу в консоли, это:
hdfs://localhost:9000/in:0+9396432
который :genericSplit.toString()
PDFInputFormat extends FileInputFormat
который просто создаетnew PDFRecordReader
вcreateRecordReader
метод.
Я хочу знать, в чем моя ошибка?
Нужны ли дополнительные занятия или что-то?