2014-09-15 6 views
0

У меня есть ниже картограф & редуктора, Это то, что я пытаюсь сделать с ними я) Читать огромный файл б) сделали некоторые изменения в линию на основе логики и писать это в файл снова.Как не отказаться от дубликатов в MapReduce

Все работает отлично, пока я есть повторяющиеся строки в файле, «Мой редуктор сбрасывает повторяющиеся строки и писать только уникальные строки», я не хочу редуктор отбрасывать повторяющиеся строки

Mapper

class ChopMapper extends Mapper<LongWritable, Text, Text, IntWritable> 
{ 
public void map(LongWritable key, Text value, Context context) 
throws IOException, InterruptedException {    
String record = value.toString(); 
IntWritable one = new IntWritable(1);    
context.write(new Text(record), one);     
} 
} 

Reducer

class ChopReducer extends Reducer<Text, IntWritable, Text, IntWritable> 
{ 
public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException 
{   
/*Some Operations*/ 
context.write(new Text(record), null);   
} 
} 

ответ

0

Просто переверните все значения и испустите свою запись в редукторе:

for(IntWritable value : values) { 
    context.write(new Text(record), null);   
} 
Смежные вопросы