빅데이터공부하기 이번글은 소스코드에 대해서 공부할거에요.

 

 

 

소스코드 

 

1. 파라미터 N의 전달

 

먼저 이 값이 TopN프로그램의 세번째 인자로 지정

main 함수에서 이를 읽어 "top N"이란 파라미터로 정의

- job.getConfiguation(), setlnt("topN", Integer.parselnt(args[2]));

- Mapper와 Reducer의 setup메소드에서 이 값을 읽어간다.

 

int topN=10;

@Override

protected void setup(Context context)throws IOException, InterruptedException{
    topN=context.getConfiguation().getlnt("topN",10);

}

 

2. map

 

public void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException{

String[]pair= value.toString().split("\\t")

Long IValue=(long)integer.parseint(pair[1].toString());

insert(queue, pair[0],IValue,topN)

}

 

 

3. insert

 

public static void insert(PriorityQueue queue, String item,LongIValue, int TopN) {

ItemFreq head=(ItemFreq)queue peek();

 

if (queue size()<top N ll head.getFreq()<IValue){

ItemFreq itemFreq = new ItemFreq();

ItemFreq.setltem(item);

ItemFreq.setFreq(IValue);

queue.add(itemFreq);

if(head !=null && head.getFreq()<IValue) {// remove smallest item. queue.remove();

}

}

 

 

 

+ Recent posts