一.UDF
概念说明:user defined function
特点特征:
应用场景:in:out=1:1,只能输入一条记录当中的数据,同时返回一条处理结果.
代码实现:自定义一个java类
继承UDF类
约定俗成的重写evaluate方法
public String evaluate(String input,int maxSaveStringLength,String replaceSign) {
if(input.length()<=maxSaveStringLength){
return input;
}
return input.substring(0,maxSaveStringLength)+replaceSign;
}
打包类所在项目成一个jar包并上传到hive所在机器
在hive中执行add jar操作,将jar加载到classpath中。
add jar hdfs://'jar包路径';
在hive中创建模板函数,使得后边可以使用该函数名称调用实际的udf函数
create temporary function mask as '包联到类名';
hive sql中像调用系统函数一样使用udf函数
二.UDAF
概念说明 :自定义udaf函数self_count,实现系统udaf count的功能
特点特征: in:out=n:1,即输入N条数据,返回一条处理结果,即列转行
应用场景:聚合函数
代码实现:自定义一个j