최근 hive와 impala query를 만지게 되면서 hive udf를 impala에 등록할 일이 생겼는데
hive에서 udf를 등록할 때의 명령어가 먹지 않아 약간의 삽질을 하였다.
사용한 udf는 string을 입력받아 잘게 쪼개어 다시 string을 반환하는 역할이었다.
[ Hive UDF create command ]
hive> create function ad_get as 'com.data.udf.AdGet' using jar 'hdfs:///user/hive/lib/hive-udf.jar';
ad_get => hive에서 udf로 사용할 명칭
com.data.udf.AdGet => jar에서 udf로 등록할 클래스명칭
hdfs:///user/hive/lib/hive-udf.jar => jar hdfs path
[ Impala UDF create command ]
Impala는 hive udf create 명령과는 다르게 해당 udf의 return 타입과 input타입을 명시해 주어야 한다.
create function ad_get(string, string, string) returns string location 'hdfs:///user/hive/lib/hive-udf.jar' symbol='com.data.udf.AdGet';
ad_get(string, string, string) => impala에서 udf로 사용할 명칭(string arg 3개를 입력 받는다)
returns string => 리턴타입 지정
symbol='com.data.udf.AdGet' => jar에서 udf로 등록할 클래스명칭
location 'hdfs:///user/hive/lib/hive-udf.jar
impala에 해당 명령어로 udf를 등록한 후 show functions 명령을 내려 보면 잘 등록되었는지 확인이 가능하다.
감사합니다:)
'Bigdata > QueryEngine' 카테고리의 다른 글
[ Hive ] hive query lateral view explode udf로 string 처리하기 (0) | 2020.07.07 |
---|---|
[ Impala ] Impala에서 drop table시 location지정된 hdfs파일 함께 지우기 (0) | 2020.04.20 |
hive, impala에서 특정 데이터포맷으로 날짜 가져오기 (0) | 2019.04.12 |
Hive external table drop시키기 (하둡 데이터도 삭제) (0) | 2019.03.26 |
hive, impala hive metastore 동기화 작업 (하이브, 임팔라) (0) | 2019.03.25 |