Java - Create an Impala UDF

Java - Create an Impala UDF

Github Project : Impala-UDF

Subject

Impala get many functions but sometime you must make your own function.

An UDF is an User Define Function.

Common part

Maven Dependencies

<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>1.1.0</version> </dependency>

Java code

import org.apache.hadoop.hive.ql.exec.UDF; /** * This class returns the hashcode for an input string. */ public class Ascii extends UDF { public Ascii(){ } public int evaluate(String str /** Parameter(s) of the function **/ ) { /** Your code here **/ return str.hashCode(); } }

Hdfs

Copy the .jar file with dependancies in your HDFS.

Impala code

Impala function
DROP FUNCTION IF EXISTS MyFunction(STRING); CREATE FUNCTION IF NOT EXISTS MyFunction(String) RETURNS INT LOCATION 'hdfs:///user/hdfs/UDF/hive-udf-samples-1.0-jar-with-dependencies.jar' SYMBOL='Ascii';