开发HIVE的UDF自定义函数
2015-10-13 10:47
741 查看
[Author]: kwu
1 、UDF自定义函数
自定义函数包括三种UDF、UDAF、UDTF
UDF(User-Defined-Function) 一进一出
UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出。count/max/min
UDTF(User-Defined Table-Generating Functions) 一进多出,如lateral view explore()
使用方式 :
在HIVE会话中add 自定义函数的jar文件,然后创建function,继而使用函数。
2、 UDF开发
继承org.apache.hadoop.hive.ql.UDF
需要实现evaluate函数
evaluate函数支持重载
实现一进一出的操作
3、Java编写UDF,实现的功能很简单,自定义hash函数用来替代原有的hash函数,这里用的是MurmurHash
[java] view
plaincopy
import org.apache.hadoop.hive.ql.exec.UDF;
import com.hexun.utils.MurmurHash;
public class HashMurUDF extends UDF {
public String evaluate(String cookie) {
long hash64 = MurmurHash.hash64(cookie);
return hash64+"";
}
}
增加相关依赖的jar
引用UDF定义的函数
[sql] view
plaincopy
add jar /opt/softwares/UDF.jar;
create temporary function HashMur as 'com.hexun.udf.HashMurUDF';
insert overwrite table cookiekeyMurHash select HashMur( cookie) key,cookie from all_dpi_cdr where length(cookie)>0;
1 、UDF自定义函数
自定义函数包括三种UDF、UDAF、UDTF
UDF(User-Defined-Function) 一进一出
UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出。count/max/min
UDTF(User-Defined Table-Generating Functions) 一进多出,如lateral view explore()
使用方式 :
在HIVE会话中add 自定义函数的jar文件,然后创建function,继而使用函数。
2、 UDF开发
继承org.apache.hadoop.hive.ql.UDF
需要实现evaluate函数
evaluate函数支持重载
实现一进一出的操作
3、Java编写UDF,实现的功能很简单,自定义hash函数用来替代原有的hash函数,这里用的是MurmurHash
[java] view
plaincopy
import org.apache.hadoop.hive.ql.exec.UDF;
import com.hexun.utils.MurmurHash;
public class HashMurUDF extends UDF {
public String evaluate(String cookie) {
long hash64 = MurmurHash.hash64(cookie);
return hash64+"";
}
}
增加相关依赖的jar
引用UDF定义的函数
[sql] view
plaincopy
add jar /opt/softwares/UDF.jar;
create temporary function HashMur as 'com.hexun.udf.HashMurUDF';
insert overwrite table cookiekeyMurHash select HashMur( cookie) key,cookie from all_dpi_cdr where length(cookie)>0;
相关文章推荐
- MySQL____函数相关____ing
- Meta http-equiv属性详解(转)
- JS中对数组的操作方法
- Conoha追加ip方法,Conoha多ip配置,Conoha如何配置追加ip
- SVN下Xcode中文件状态的含义
- 浅析Javascript中“==”与“===”的区别
- map等关联容器 vector等序列容器 如何防止迭代器失效
- 前端开发规范小结
- ASP.NET书籍信息录入实现代码
- 同时打开两个Tomcat
- Java同步容器和并发容器
- Git 的 .gitignore 配置
- 创建GZIP压缩格式的HIVE表
- saiku2.5源码myeclipse部署出现的一个问题
- 【第五节】Java代码实现链表
- 深度学习(十一)RNN入门学习
- 程序猿的自我修养
- python密码处理(可用于生产模式)
- Map获取键值,Map的几种遍历方法 (转载)
- Makefile(上)