**a 10 20 30 a 60
b 155
c 50
b 20 45 90
z 30 10 10
Вышеупомянутый текстовый файл с разделителями в виде вкладок. Мне нужна общая сумма чисел в строке. И выход должен быть таким, как изображено выше.Hadoop добавление номеров
Я попытался использовать следующий код карты и редуктора, но он не работает. Может кто-нибудь исправить код пожалуйста ??
код Mapper:
public class WordMapper extends MapReduceBase implements Mapper<LongWritable,Text,Text,IntWritable>{
@Override
public void map(LongWritable key, Text value,
OutputCollector<Text, IntWritable> output, Reporter arg3)
throws IOException {
String s = value.toString();
for(String word:s.split("\t")){
if(word.length()>0){
output.collect(new Text(word),new IntWritable(1));
// TODO Auto-generated method stub
}
}
}
}
Reducer Код:
public class WordReducer extends MapReduceBase implements Reducer<Text,IntWritable,Text,IntWritable>{
public void reduce(Text key, Iterator<IntWritable> values,
OutputCollector<Text, IntWritable> output, Reporter reporter)
throws IOException {
int sum = 0;
while(values.hasNext(){
if values != null{
sum += values.next().get();
}
output.collect(key, new IntWritable(sum));
}
}
как это не удается? какой результат вы получаете? –