Jak analizować pliki PDF w programach zmniejszających mapę?

Chcę parsować pliki PDF w moim programie hadoop 2.2.0 i znalazłemto, śledziłem to, co mówi i do tej pory mam te trzy klasy:

PDFWordCount: główna klasa zawierająca mapę i zmniejsza funkcje. (tak jaknatywna liczba słów hadoop próbka ale zamiastTextInputFormat Użyłem mojegoPDFInputFormat klasa.

PDFRecordReader extends RecordReader<LongWritable, Text>: Jaka jest główna praca tutaj. Szczególnie umieściłem mojeinitialize funkcja tutaj, aby uzyskać więcej ilustracji.

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");
  }

(Możesz zobaczyć mojesystem.out.printlns do debugowania. Ta metoda kończy się niepowodzeniemgenericSplit doFileSplit. Ostatnią rzeczą, jaką widzę w konsoli, jest to:

hdfs://localhost:9000/in:0+9396432

który jestgenericSplit.toString()

PDFInputFormat extends FileInputFormat<LongWritable, Text>: co po prostu tworzynew PDFRecordReader wcreateRecordReader metoda.

Chcę wiedzieć, jaki jest mój błąd?

Czy potrzebuję dodatkowych zajęć lub czegoś takiego?

questionAnswers(2)

yourAnswerToTheQuestion