Hive官方的UDF手册地址是:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
测试内置函数的快捷方法
创建一个表dual
load数据到dual表
尝试内置函数
自定义函数例子
有时候Hive提供的内置函数不能满足我们的要求,此时就需要自定义函数。下面我们做一个自定义函数实现ToLowerCase的功能。
新建Java工程
需要把Hive中的lib目录下面的Jar包导入到项目中去。
代码
代码如下:
package tech.mrbcy.bigdata.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class ToLowerCase extends UDF{
public String evaluate(String field){
return field.toLowerCase();
}
}
打成Jar包
将Java的项目打成Java包,然后上传到服务器。然后执行下面的代码:
hive> add jar /root/udf.jar;
输出结果如下:
Added [/root/udf.jar] to class path
Added resources: [/root/udf.jar]
创建自定义函数
接下来创建一个自定义函数,将它对应起来。
create temporary function tolow as 'tech.mrbcy.bigdata.udf.ToLowerCase';
使用自定义函数
select * from t_p;
输出结果:
18 Angla
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14
使用自定义函数以后的结果:
select id,tolow(name) from t_p;
输出结果为:
18 angla
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 11
12 12
13 13
14 14