Hive官方的UDF手册地址是:
1.使用内置函数的快捷方法:
创建一个表dual,load数据到dual表,然后尝试内置函数
1.Hive自定义函数:
当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)
1.1.Hive自定义函数类别:
UDF 作用于单个数据行,产生一个数据行作为输出。(数学函数,字符串函数)
UDAF(用户定义聚集函数):接收多个输入数据行,并产生一个输出数据行。(count,max)
1.2.Hive自定义函数UDF开发示例:
自定义函数实现ToLowerCase的功能
1.新建java工程,并将Hive中的lib目录下面的Jar包导入到项目中去;
2.代码如下:先开发一个java类,继承UDF,并重载evaluate方法
package cn.hive.demo;import org.apache.hadoop.hive.ql.exec.UDF;public class ToLowerCase extends UDF{ /*必须是public*/ public String evaluate(String field){ return field.toLowerCase(); }}
3.将java工程打成jar包,然后上传到服务器,然后执行下面的代码:
hive> add jar /data/udf.jar;(将jar包添加到hive的classpath)
4.创建临时函数与开发好的java class关联:
Hive>create temporary function tolow as 'cn.hive.demo.ToLowerCase
';
5.使用自定义函数:
Hive>select id,tolow(name) from t_low;