You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by Kunsheng Chen <ha...@yahoo.com> on 2008/08/14 20:58:42 UTC
Could I change the type of parameter in Mapper and Reducer ?
I am going to output the map as <K, V> , in which both K and V are Text value. And K is the first word of each line while V is the second one.
My code is modified according to WordCount, the code is compiled successfully but fail to run since it require Mapper to be Mapper<LongWritable, Text, Text, IntWritable> other than Mapper<LongWritable, Text, Text, Text> that I am using .
public static class MyMap extends MapReduceBase implements Mapper<LongWritable, Text, Text, Text>
{
private Text s1=new Text();
private Text s2=new Text();
public void map(LongWritable key, Text value, OutputCollector<Text, Text> output, Reporter reporter) throws IOException {
String line = value.toString();
String [] splits = value.toString().split(" ");
s1.set(splits[0]);
s2.set(splits[1]);
// I want to output s1 and s2, both of which are Type Text
output.collect(s1,s2);
}
}
}
I don't know whether I should overwrite some other classes to change the output or not. There is 'TextOutputFormat.class' inside Example WordCount but I found no more details.
Any idea is appreciated. Thanks!