Hive 10Hive的UDFUDAFUDTF
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive 10Hive的UDFUDAFUDTF相关的知识,希望对你有一定的参考价值。
Hive自定义函数包括三种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继而使用函数
UDF
1、UDF函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容。
2、编写UDF函数的时候需要注意一下几点:
a)自定义UDF需要继承org.apache.hadoop.hive.ql.UDF。
b)需要实现evaluate函数,evaluate函数支持重载。
例:写一个返回字符串长度的Demo:
import org.apache.hadoop.hive.ql.exec.UDF; public class GetLength extends UDF{ public int evaluate(String str) { try{ return str.length(); }catch(Exception e){ return -1; } } }
3、步骤
a)把程序打包放到目标机器上去;
b)进入hive客户端,添加jar包:
hive> add jar /root/hive_udf.jar
c)创建临时函数:
hive> create temporary function getLen as ‘com.raphael.len.GetLength‘;
d)查询HQL语句:
hive> select getLen(info) from apachelog; OK 60 29 87 102 69 60 67 79 66 Time taken: 0.072 seconds, Fetched: 9 row(s)
e)销毁临时函数:
hive> DROP TEMPORARY FUNCTION getLen;
UDAF
UDTF
以上是关于Hive 10Hive的UDFUDAFUDTF的主要内容,如果未能解决你的问题,请参考以下文章