UDF:用户定义(普通)函数,只对单行数值产生作用;UDF只能实现一进一出的操作。UDF函数自定义实现步骤如下:
-
定义UDF函数,如计算两个数之和
package com.starzy.udf; import org.apache.hadoop.hive.ql.exec.UDF; public class UDFDemo extends UDF { // 自定义函数实现逻辑,重载evaluate public String evaluate(String in){ return in.toLowerCase(); } public int evaluate(int a,int b){ return a + b; } }
-
把程序打成jar包
-
添加jar包到hive中
hive> add jar /root/data/hive/learn-hive-1.0.jar;
-
创建临时函数并测试
hive> create temporary function myudf as "com.starzy.udf.UDFDemo"; -- 执行测试 hive> select myudf('ABC'); hive> select myudf(1,2);