Hive-函数(一)系统自带函数+自定义函数
一、系统自带的函数
1.查看系统自带的函数
hive> show functions;
2.显示自带的函数的用法-比如拿upper函数来说
hive> desc function
OK
tab_name
upper(str) - Returns str with all characters changed to uppercase
Time taken: 0.137 seconds, Fetched: 1 row(s)
现在应用upper这个函数进行查询:
hive (default)> select upper(name) as NAME from student1;
OK
name
NULL
NULL
SISI
HIHI
ZHANGSAN
LISI
ZHAOLIU
SOSO
1212
Time taken: 0.226 seconds, Fetched: 9 row(s)
3.详细显示自带的函数的用法
hive> desc function extended
二、自定义函数
1.自定义函数简介
Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。
2.自定义函数应用情况
当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)。
3.根据用户自定义函数类别分为以下三种:
(1)UDF(User-Defined-Function)
一进一出
(2)UDAF(User-Defined Aggregation Function)
聚集函数,多进一出
类似于:count/max/min
(3)UDTF(User-Defined Table-Generating Functions)
一进多出
如lateral view explore()
4.官方文档地址
https://cwiki.apache.org/confluence/display/Hive/HivePlugins
5.编程步骤:
(1)继承org.apache.hadoop.hive.ql.UDF
(2)需要实现evaluate函数;evaluate函数支持重载;
(3)在hive的命令行窗口创建函数
a)添加jar
add jar
b)创建function,
create [temporary] function
(4)在hive的命令行窗口删除函数
Drop [temporary] function [if exists]
6.注意事项
UDF必须要有返回类型,可以返回null,但是返回类型不能为void;