python으로 Hive UDF 만들기1

UDF란?

hive에서 사용하는 function을 사용자가 직접 구현하는 사용자 정의 함수(user defined function)의 약자이다.

aaa_aaa 라는 형식의 데이터를 aaa++aaa 형식으로 변환시켜주는 UDF를 python 으로 구현해보자.

UDF가 될 python 코드는 아래와 같다.

# hiveudf.py

#!/bin/python
import sys

for line in sys.stdin:
    fname, lname = line.split('_')
    result = fname + "++" + lname
    print(result)

리눅스에선 위와같이 실행될 python의 경로를 반드시 명시해 주어야 한다.

만든 UDF를 hive에 add 해주자

hive> add FILE /home/kt1201/hiveudf.py

이제 UDF를 실행해 보자

select transform(co1)
	using 'python /home/kt1201/hiveudf.py' as col_names
from (
	select 'aaa_aaa' as col1
    union all
	select 'bbb_bbb' as col2
    union all
	select 'ccc_ccc' as col3
);

각 데이터들이 변환되어 출력될 것이다.

Leave a comment