Hive的自定义函数(UDF: user defined function)
本质就是一个Java程序,封装我们的业务逻辑
实现
package demo.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class MyConcat extends UDF {
public String evaluate (String param1,String param2) {
return param1+"***这是自己实现的自定义函数方法***" +param2;
}
}
需要从一个UDF继承,然后从写一个 evaluate方法,方法名必须为evaluate ,参数位 就是你在调用自定义函数的时候 要传入的值。写好方法之后 将package 打包成jar 包
打包完成之后将该jar 包 上传到服务器上,在hive的命令提示符下加入classpath中
hive> add jar <filepath > /<jar name > ;
然后,在hive的命令提示符下,创建一个别名(临时函数)来代表我们的自定义函数
hive> create temporary function <function name > as 'jar path '
hive> create temporary function myconcat as 'demo.udf.MyConcat'
然后在hive中使用自己的自定义函数,得到的结果
SMITH***这是自己实现的自定义函数方法* **CLERK
ALLEN* **这是自己实现的自定义函数方法* **SALESMAN
WARD* **这是自己实现的自定义函数方法* **SALESMAN
JONES* **这是自己实现的自定义函数方法* **MANAGER
MARTIN* **这是自己实现的自定义函数方法* **SALESMAN
BLAKE* **这是自己实现的自定义函数方法* **MANAGER
CLARK* **这是自己实现的自定义函数方法* **MANAGER
SCOTT* **这是自己实现的自定义函数方法* **ANALYST
KING* **这是自己实现的自定义函数方法* **PRESIDENT
TURNER* **这是自己实现的自定义函数方法* **SALESMAN
ADAMS* **这是自己实现的自定义函数方法* **CLERK
JAMES* **这是自己实现的自定义函数方法* **CLERK
FORD* **这是自己实现的自定义函数方法* **ANALYST
MILLER* **这是自己实现的自定义函数方法* **CLERK