SQL GroupBy와 비슷한 기능을하는 코드를 작성했습니다.reducer-MapReduce에 여러 인수 보내기
내가했다 데이터 세트가 여기에 있습니다 :
25078868141920090906200937200909,619, 일요일, 주말, ON-NET 나가는 아침, VOICE, 25078, PAY_AS_YOU_GO_PER_SECOND_PSB, 성공적인-RELEASEDBYSERVICE, 그 값을 합계하는 감속기에 제 17 인자를 전송로 매퍼
public class MyMap extends Mapper<LongWritable, Text, Text, DoubleWritable> {
public void map(LongWritable key, Text value, Context context) throws IOException
{
String line = value.toString();
String[] attribute=line.split(",");
double rs=Double.parseDouble(attribute[17]);
String comb=new String();
comb=attribute[5].concat(attribute[8].concat(attribute[10]));
context.write(new Text(comb),new DoubleWritable (rs));
}
}
public class MyReduce extends Reducer<Text, DoubleWritable, Text, DoubleWritable> {
protected void reduce(Text key, Iterator<DoubleWritable> values, Context context)
throws IOException, InterruptedException {
double sum = 0;
Iterator<DoubleWritable> iter=values.iterator();
while (iter.hasNext())
{
double val=iter.next().get();
sum = sum+ val;
}
context.write(key, new DoubleWritable(sum));
};
}
17,0,1,21.25,635-10-112-30455. 이제 저는 감속기에 어떻게 보내야합니까?