빅데이터공부하기 이번글은 소스코드에 대해서 공부할거에요.
소스코드
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();
}
}
'빅데이터 > 빅데이터Hadoop' 카테고리의 다른 글
빅데이터공부하기 55_ COUNT CITATION (0) | 2014.11.19 |
---|---|
빅데이터공부하기 54_ COUNT TRIGRAM (0) | 2014.11.17 |
빅데이터공부하기 54_2 Top N (0) | 2014.11.05 |
빅데이터공부하기 54_1 Top N (0) | 2014.11.04 |
빅데이터공부하기 53_1 word count v2 (0) | 2014.11.04 |