1. 前言
Hive中包含很多内置函数,如果内置函数不能满足实际应用时,也可以自定义函数(User-Defined Function,UDF)来实现,并在Hive中调用。
UDF函数有3中类型:
- UDF(User-Defined-Function)函数
作用于单条数据,并且输出一个数据行。大多数的函数如字符串函数、日期函数等都属于这一类。
- UDAF(User Defined Aggregation Function)函数
可以接受多个数据输入,同时输出一个数据行,比如COUNT、MIN、MAX,这类函数都是聚集函数。
- UDTF(User-Defined Table-Generating Functions)函数
作用于单条数据,同时产生多个输出数据行。
2. 内置函数实例
- 创建虚拟表
echo 'X' > dual.txt
把X写入到dual.txt文件中,接着创建一个名为dual的表,表字段是dummy,并把dual.txt中的X导入到表中:
create table dual(dummy String);
load data local inpath '/home/hadoop/input/dual.txt' overwrite into table dual;

- 完成后,再查看临时表的内容:
select * from dual;

- 临时表创建完成,下面就可以编写自定义函数了。
2.1 UDF函数实例
首先来看一个UDF函数实例,这个例子很简单,将a ,b,c,d 拼接起来,并完成输出,需要用到的函数是concat()函数,代码如下:
select concat('a','b','c','d') from dual;

2.2 UDAF函数实例
下面给出一个统计学生age总和的实例,代码如下:
select sum(age) from person;

可以看出聚合函数统计了全部学生的年龄,在实际运行时会转换为mapreduce程序执行。
2.3 UDTF函数实例
再来个好玩的,一个输入转化为多个输出的例子:将’a,b,c,d,e’分解成’a’,‘b’,‘c’,‘d’,‘e’
代码如下:
select explode(split('a,b,c,d,e',',')) from dual;

3. hive常用函数
下载连接:https://download.csdn.net/download/rivendong/11803964
本文深入介绍了Hive中的三种用户自定义函数(UDF、UDAF、UDTF)及其使用实例,包括内置函数、字符串操作、数据聚合及多输出转换等功能,帮助读者掌握Hive的数据处理技巧。
&spm=1001.2101.3001.5002&articleId=101198035&d=1&t=3&u=37a7b819b83c4ef9b99e4b4f7fffafeb)
965

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



