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提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDFuser-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;