私の1つのMapReduceタスクでは、BytesWritableをKeyBytesWritableとしてオーバーライドし、ByteWritableをValueBytesWritableとしてオーバーライドします。次に、SequenceFileOutputFormatを使用して結果を出力します。
私の質問は、次のMapReduceタスクを開始するときに、このSequenceFileを入力ファイルとして使用したいということです。では、どのようにジョブクラスを設定でき、Mapperクラスは以前にオーバーライドしたSequenceFileのキーと値をどのように識別できるのでしょうか。
SequenceFile.Readerでキーと値を読み取ることができることを理解しています。
Configuration config = new Configuration();
Path path = new Path(PATH_TO_YOUR_FILE);
SequenceFile.Reader reader = new SequenceFile.Reader(FileSystem.get(config), path, config);
WritableComparable key = (WritableComparable) reader.getKeyClass().newInstance();
Writable value = (Writable) reader.getValueClass().newInstance();
while (reader.next(key, value))
しかし、このリーダーを使用して、キーと値をパラメーターとしてMapperクラスに渡す方法がわかりません。conf.setInputFormatをSequenceFileInputFormatに設定してから、Mapperにキーと値を取得させるにはどうすればよいですか?
ありがとう