HadoopのMapReduceプログラムのHDFSにあるPDFファイルを解析する必要があります。したがって、入力分割としてHDFSからPDFファイルを取得し、それを解析してMapperクラスに送信する必要があります。このInputFormatを実装するために、私はこのリンクを通過しました。これらの入力分割をどのように解析してテキスト形式に変換できますか?
2 に答える
HadoopでのPDFファイルの処理は、 FileInputFormatクラスを拡張することで実行できます。それを拡張するクラスをWholeFileInputFormatとします。WholeFileInputFormatクラスでは、getRecordReader()メソッドをオーバーライドします。これで、各pdfが個別の入力分割として受信されます。次に、これらの個々の分割を解析してテキストを抽出できます。このリンクは、FileInputFormatを拡張する方法を理解するための明確な例を示しています。
それはあなたの分割に依存します。解析するには、PDF全体が必要になると思います(間違っている可能性があります)。これを行うためのJavaライブラリがあり、Googleはそれらがどこにあるかを知っています。
それを考えると、ファイルを解析する準備ができたら、ファイル全体を用意するというアプローチを使用する必要があります。マッパーでそれを実行したい場合は、ファイル全体をマッパーに渡すリーダーが必要になります。これを行うために独自のリーダーを作成することもできますし、すでにそこにあるリーダーもあります。PDFのディレクトリをスキャンし、各ファイルの名前をキーとしてマッパーに渡し、コンテンツを値として渡すリーダーを作成することもできます。