PDF、DOC、および DOCX ファイルを分析するプログラムを作成しています。これらのファイルは HDFS に保存されます。
MapReduce ジョブを開始するときに、マップ関数にファイル名をキーとして、バイナリ コンテンツを値として持たせたいと考えています。次に、PDF パーサー ライブラリに渡すことができるストリーム リーダーを作成します。マップ フェーズのキーと値のペアが filename/filecontents になるようにするにはどうすればよいですか?
Hadoop 0.20.2 を使用しています
これは、ジョブを開始する古いコードです。
public static void main(String[] args) throws Exception {
JobConf conf = new JobConf(PdfReader.class);
conf.setJobName("pdfreader");
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(IntWritable.class);
conf.setMapperClass(Map.class);
conf.setReducerClass(Reduce.class);
conf.setInputFormat(TextInputFormat.class);
conf.setOutputFormat(TextOutputFormat.class);
FileInputFormat.setInputPaths(conf, new Path(args[0]));
FileOutputFormat.setOutputPath(conf, new Path(args[1]));
JobClient.runJob(conf);
}
他のinputformatタイプがあることは知っています。しかし、私が望むことを正確に行うものはありますか? ドキュメントはかなり曖昧だと思います。利用可能なものがある場合、Map 関数の入力タイプはどのように見えるでしょうか?
前もって感謝します!