混合函数可以使用java中的方法java_method(class,method[,arg1[,arg2...]])或者reflect
Hive版本1.2.1
UDTF 用户定义表函数(表函数)一行变成多行配合lateral view
hive的Lateral view
http://blog.sina.com.cn/s/blog_7e04e0d00101csic.html
UDF 重写evaluate方法 Map端
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class udftest extends UDF{
public boolean evaluate(Text t1,Text t2){
if(t1==null||t2==null){
return false;
}
double d1=Double.parseDouble(t1.toString());
double d2=Double.parseDouble(t2.toString());
if(d1>d2){
return true;
}else{
return false;
}
}
}
函数打包成function.jar
hive命令行
add jar /home/jar/function.jar //jar包进入分布式缓存 create temporary function bigthan as 'com.peixun.udf.udftest'//执行创建模版函数bigthan
UDAF (user defined aggregation function)用户自定义聚合函数