您的位置:首页 > 其它

开发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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: