私はHadoopを初めて使用します。私は単語数を使いましたが、今は変更を加えたいと思います。
テキストファイルで最も多く出現した単語を取得したい。の場合、通常の単語数プログラムは出力を提供します:
a 1
b 4
c 2
出力だけが出るプログラムを書きたい
b 4
ここに私のレデューサー関数::
public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable>
{
int max_sum=0;
Text max_occured_key;
public void reduce(Text key, Iterable<IntWritable> values, Context context)
throws IOException, InterruptedException
{
int sum = 0;
for (IntWritable val : values)
{
sum += val.get();
}
if(sum > max_sum)
{
max_sum = sum;
max_occured_key = key;
}
context.write(max_occured_key, new IntWritable(max_sum));
//context.write(key, new IntWritable(sum));
}
}
しかし、それは正しい出力を与えていません。誰かがplzを助けることができますか?