Click here to Skip to main content
15,887,812 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
public class MaxMinReducer extends Reducer {
int max_sum=0;
int mean=0;
int count=0;
Text max_occured_key=new Text();
Text mean_key=new Text("Mean : ");
Text count_key=new Text("Count : ");
int min_sum=Integer.MAX_VALUE;
Text min_occured_key=new Text();

public void reduce(Text key, Iterable<intwritable> values, Context context) throws IOException, InterruptedException {
int sum = 0;

for (IntWritable value : values) {
sum += value.get();
count++;
}

if(sum < min_sum)
{
min_sum= sum;
min_occured_key.set(key);
}


if(sum > max_sum) {
max_sum = sum;
max_occured_key.set(key);
}

mean=max_sum+min_sum/count;
}

@Override
protected void cleanup(Context context) throws IOException, InterruptedException {
context.write(max_occured_key, new IntWritable(max_sum));
context.write(min_occured_key, new IntWritable(min_sum));
context.write(mean_key , new IntWritable(mean));
context.write(count_key , new IntWritable(count));
}
}



Here I am writing minimum,maximum and mean of wordcount.

My input file :

high low medium high low high low large small medium

Actual output is :

high - 3------maximum

low - 3--------maximum

large - 1------minimum

small - 1------minimum

but i am not getting above output ...can anyone please help me?
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900