티스토리 뷰
하이브의 UDF는 UDF, UDAF, UDTF 로 구분된다.
- UDF: 한개의 행에서 동작한다. 입력과 출력은 하나이다.
- ex) TRIM()
- UDAF: 집계 함수이다. 여러 행의 데이터를 집계하여 하나의 결과를 출력합니다.
- ex) COUNT(), SUM()
- UDTF: 하나의 행을 입력으로 받아서 여러행의 데이터를 반환한다.
- ex) EXPLODE()
하이브에서 제공하는 기본 UDF를 이용할 수 있고,
사용자가 UDF 를 만들어서 적용할 수 도 있다.
사용자가 UDF를 만들어서 적용하는 방법은 다음과 같다.
package sdk.hadoop.hive;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public final class Sample extends UDF {
public Text evaluate(final Text s) {
if (s == null) { return null; }
return new Text(s.toString().toLowerCase());
}
}
-- JAR 추가
ADD JAR hdfs://localhost:8020/user/hadoop/sample.jar;
-- 함수 생성
CREATE TEMPORARY FUNCTION sampleFunc AS 'sdk.hadoop.hive.Sample';
-- 생성한 함수 사용
select sampleFunc('abcd');
위와 같이 만들어서 사용할 수 있다.
UDF, UDAF, UDTF의 자세한 구현 사항은 git에 구현된 하이브 소스코드를 보면더 도움이 된다.
hive 빌트인 UDF - https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-HiveOperatorsandUser-DefinedFunctions(UDFs)
UDF 생성 방법 - https://cwiki.apache.org/confluence/display/Hive/HivePlugins
Hive의 UDF 구현체 - https://github.com/apache/hive/tree/master/ql/src/java/org/apache/hadoop/hive/ql/udf
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] UDAF 구현 예제 (0) | 2017.03.27 |
---|---|
[hive] UDF 구현 예제 (0) | 2017.03.23 |
[hive] 하이브의 CSV 서데 사용 방법 (0) | 2017.03.08 |
[hive] 하이브 테이블에 데이터 입력 방법 (0) | 2017.02.21 |
[hive] 하이브 테이블 생성하기 (0) | 2017.02.21 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고리즘
- oozie
- SPARK
- yarn
- 파이썬
- airflow
- AWS
- java
- error
- Python
- build
- SQL
- S3
- hbase
- emr
- HDFS
- 정올
- Linux
- 다이나믹
- HIVE
- 하이브
- Hadoop
- mysql
- 하둡
- bash
- Tez
- ubuntu
- 오류
- 백준
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함