1
こんにちは、マップのコードを書き、最高温度を見つけています。問題は、最高温度が得られているが、対応するキーがないことです。その上Map Reduce - リジッドキーを取得することができません
1955 52
1958 7
1985 22
1999 32
など
public static class TemperatureReducer extends Reducer<Text,IntWritable,Text,IntWritable>{
Text year=new Text();
int maxTemperature=Integer.MIN_VALUE;
public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
for(IntWritable valTemp:values) {
maxTemperature=Math.max(maxTemperature, valTemp.get());
}
//System.out.println("The maximunm temperature is " + maxTemperature);
context.write(year, new IntWritable(maxTemperature));
}
}
マッパーイマジン。
キーを上書きしてすべてのデータを印刷しています。私は最高気温とその年だけを欲しい。
非常にありがとう。これはバグを解決しました。 Hadoopの新機能だから何らかの方法で、私のコードは出力フォルダを削除することができます。私はコードを実行すると、手動で削除する必要があります。 –
あなたのドライバコード(Configuredを拡張してツールを実装するクラス)では、 'FileSystem.get(getConf())。delete(new Path(outputFolder)、true)'を呼び出すことができます。 'outputFolderは出力フォルダ名前/パス –