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