私は自分の問題に対して 0 reduce アプローチを使用しています。あるファイルのデータを前処理してから別のファイルとして書き出したいのですが、改行やタブ区切りはありませんか? 前処理を除いた同じファイル形式でデータを処理したマップ ジョブを出力するにはどうすればよいですか。つまり、次のようなものがあります。
前処理:
<TITLE> Herp derp </Title> I am a major general
後処理:
Herp
Derp
I
am
a
major
general
私がやりたいことはこれです:
Herp Derp I am a major general
問題は次のコード行にあると思います。
job.setOutputFormatClass(TextOutputFormat.class);
しかし、私が試みたとき、かなり素朴に次のようなことをしました:
job.setOutputFormatClass(null);
それは明らかにうまくいきません。これを行うために使用できる形式クラスが提供されていますか? そうでない場合、自分のクラスを作成して、すべてを希望どおりに出力するにはどうすればよいですか? Hadoop と map reduce は初めてです。
以下にマップ機能を含めました。マップとレデューサーの間でソートされるため、reduce は使用したくありません。
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
//Did preprocessing here, irrelevant to my problem
context.write(word, null);
}
}
また、私もこれをグーグルで検索し、apache hadoop api を読んで、答えを見つけることができるかどうかを確認しました。