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!