1.自定义函数简单介绍
1.1 概述
Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。根据用户自定义函数类别分为以下三种:
• UDF(User-Defined-Function):一进一出
• UDAF(User-Defined Aggregation Function):聚集函数,多进一出。如:count/max/min
• UDTF(User-Defined Table-Generating Functions):一进多出。如 lateral view explore()
1.2 官方文档:https://cwiki.apache.org/confluence/display/Hive/HivePlugins
1.3 编程步骤:
• 继承org.apache.hadoop.hive.ql.UDF
• 需要实现evaluate函数;evaluate函数支持重载;
• 在hive的命令行窗口创建函数
a)添加jar:add jar linux_jar_path
b)创建function:create [temporary] function [dbname]function_name AS class_name;
• 在hive的命令行窗口删除函数
Drop [temporary] function [if exists] [dbname.]function_name;
• 注意事项
UDF必须要有返回类型,可以返回null,但是返回类型不能为void;
2.自定义UDF函数
2.1 创建一个Maven工程Hive
2.2 导入依赖