반응형

최근 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 명령을 내려 보면 잘 등록되었는지 확인이 가능하다.


감사합니다:)


반응형

+ Recent posts