У меня есть программа mapreduce, и она работает нормально, ниже приведены подписи карты и функции сокращения. Выходной коллектор в настоящее время составляет
output.collect(newtext, new IntWritable(someintegervalue like 5)); //works ok
Мне нужно изменить это для обработки / вывода двойных значений. (нужно разделить два целых числа, чтобы получить двойной результат).
Я попытался изменить outputcollector следующим образом
output.collect(newtext, new DoubleWritable(somedoublevalue like 5.1))
и compile / run имеет проблемы. Надеемся минимизировать изменения в сигнатурах Map и Reduce, так как программа работает нормально, нужно только получать выходные данные в двойных числах вместо целых.
Ниже приведена текущая карта. Уменьшите подписи и работайте нормально.
class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable>
map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException
public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable>
public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException {