UDAF는 AbstractGenericUDAFResolver를 상속하여 구현한다.
- Resolver 클래스
- 전달파라미터를 체크
- 실제 처리 프로세스 구현체(GenericUDAFEvaluator 구현)를 반환
- Evaluator 클래스
- init(), merge(), terminatePartial() 등의 실제 처리 구현
<Evaluator 클래스 주요 구현>
- getNewAggregationBuffer() - 집계에 사용할 AggregationBuffer 반환
- reset - aggregation 이 재사용될 때의 처리
- init - 입력 받는 아규먼트와 반환값의 타입을 지정
- iterate - 매퍼가 동작하는 동안 반복하는 작업
- terminatePartial - 부분적으로 집계작업을 종류할 때 작업
- merge - 집계작업의 결과를 머지할 때
- terminate - 작업이 종료될 때
hive 매뉴얼 UDAF 작성 예제 - https://cwiki.apache.org/confluence/display/Hive/GenericUDAFCaseStudy
UDAF 작성 예제 #1 - http://stackoverflow.com/questions/6445339/collect-set-in-hive-keep-duplicates
UDAF 구현 예제 #2 - https://www.linkedin.com/pulse/hive-functions-udfudaf-udtf-examples-gaurav-singh
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] 쿼리를 이용하여 파일시스템에 데이터를 쓰기(INSERT OVERWRITE DIRECTORY) (0) | 2017.04.06 |
---|---|
[hive] 문자열을 맵으로 변화하기 위한 str_to_map() 함수 (0) | 2017.04.05 |
[hive] UDF 구현 예제 (0) | 2017.03.23 |
[hive] 하이브의 UDF, UDAF, UDTF (0) | 2017.03.22 |
[hive] 하이브의 CSV 서데 사용 방법 (0) | 2017.03.08 |