Hive UDF简介:
Hive UDF(Hive User-Defined Function)开发是在数据分析的时候如果内置的函数解析不了的情况下去做的开发,扩展HiveSQL功能的自定义函数。
有两种API:
简单API: org.apache.hadoop.hive.ql.exec.UDF
复杂API: org.apache.hadoop.hive.ql.udf.generic.GenericUDF
本文只介绍 org.apache.hadoop.hive.ql.exec.UDF。
Hive UDF开发比较简单,只需要写个类继承UDF,并实现evaluate方法即可。
public class SayHello extends UDF {
public void evaluate(){
System.out.println("Hello!");
}
}
然后打成jar包,传到服务器端。
在Hive中添加jar包。并创建临时函数:
add jar /home/udf/SayHello.jar;
测试一下:
OK!
采坑记录:
1. 本地与服务器端java版本要一致。
如遇到: unsupported major.minor version 52.0错误,首先检查下本地java版本号与服务器端java版本号是否一致,如果不一致则会报错。
2. 一个类只需要一个方法,即实现的evaluate方法。
3. jar包尽量不要放hdfs路径里,添加jar时容易找不到。