Hive 高级操作(四)之 Hive 自定义函数 UDF
1、用户自定义函数
当 Hive 提供的内置函数无法满足业务处理需要时,此时就可以考虑使用用户自定义函数。
UDF(user-defined function):作用于单个数据行,产生一个数据行作为输出。(数学函数,字符串函数)。
UDAF(用户定义聚集函数 User- Defined Aggregation Funcation):接收多个输入数据行,并产生一个输出数据行。(count,max)。
UDTF(表格生成函数 User-Defined Table Functions):接收一行输入,输出多行(explode)。
2、一个简单的 UDF 示例
(1)先开发一个简单的 java 类,继承 org.apache.hadoop.hive.ql.exec.UDF,重载 evaluate 方法:
Package com.zc.hive.udf
import java.util.HashMap;
import org.apache.hadoop.hive.ql.exec.UDF;
public class ToLowerCase extends UDF {
// 必须是 public,并且 evaluate 方法可以重载
public String evaluate(String field) {
String result = field.toLowerCase();
return result;
}
}
(2)打成 jar 包上传到服务器。
(3)将 jar 包添加到 hive 的 classpath:
hive>add JAR /home/hadoop/hivejar/udf.jar;
查看加入的 jar 的命令:
hive>list jar;
(4)建临时函数

本文详细介绍了如何在Hive中创建和使用用户自定义函数(UDF)。从一个简单的UDF示例开始,讨论了如何开发和添加Java类到Hive的classpath,以及如何建立临时函数进行调用。接着,文章深入到Json数据解析,展示了如何处理Json数据,包括使用get_json_object或自定义函数,并通过Transform关键字配合Python脚本来转换Unix时间戳为日期编号。
最低0.47元/天 解锁文章
1179

被折叠的 条评论
为什么被折叠?



