2013-05-15 4 views
0

Я новичок в Hadoop, и это моя первая программа Hadoop.тип должен реализовывать унаследованный абстрактный метод Reducer.reduce (Object, Iterator, OutputCollector, Reporter)

Я пытаюсь создать класс Mapper под названием WordMapper, но это будет ошибка ниже.

Тип WordMapper должен реализовать унаследованный абстрактный метод Mapper.map (Object, Object, OutputCollector, Reporter)

public class WordMapper extends MapReduceBase implements Mapper 
{ 
    public void map(WritableComparable key, Writable values, OutputCollector output, Reporter reporter) throws IOException 
    { 
     String line=values.toString(); 
     StringTokenizer tok=new StringTokenizer(line); 
     while(tok.hasMoreTokens()) 
     { 
      String t=tok.nextToken(); 
      output.collect(new Text(t), new IntWritable(1)); 
     } 

    } 

} 

Может кто-то пожалуйста, скажите мне, где я буду неправильно и предложить, чтобы преодолеть проблему

ответ

2

пытаются выполнить свой параметр Mapper, как это:

public class WCMapper extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> 

public void map(LongWritable key, Text values, OutputCollector output, Reporter reporter) 
1

Вы не дали каких-либо параметров типа. Mapper - общий интерфейс; он параметризуется параметрами типа для ввода и вывода ключа и типов значений. Заполните K1, V1, K2 и V2 в следующем коде с типами вам нужно:

public class WordMapper extends MapReduceBase implements Mapper<K1, V1, K2, V2> { 
    public void map(K1 key, 
        V1 value, 
        OutputCollector<K2, V2> output, 
        Reporter reporter) 
      throws IOException { 
     whatever(); 
    } 
} 
Смежные вопросы