Hadoop大数据

Hive的UDF、UDAF、UDTF定义及UDF Demo

2019-04-27  本文已影响35人  香山上的麻雀

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)编程步骤:

自定义UDF函数实操

1.创建Maven工程Hive

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec -->
        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>1.2.1</version>
        </dependency>
</dependencies>

2.创建一个类

package com.ketang.hive;
import org.apache.hadoop.hive.ql.exec.UDF;
public class Lower extends UDF {
 public String evaluate (final String s) {
 if (s == null) {
     return null;
 }
 return s.toLowerCase();
 }
}

3.打成jar包上传到服务器/opt/module/jars/udf.jar
4.将jar包添加到hive的classpath

hive(default)>add jar /opt/module/datas/udf.jar

5.创建临时函数与开发好的java class 关联

hive(default)>create temporary function mylower as "com.ketang.hive.lower";

6.在HQL中使用自定义函数

hive(default)>select ename,mylower(ename) lowerName from emp;
上一篇 下一篇

猜你喜欢

热点阅读