hive学习day04---用户自定义函数(UDF)

it2023-10-22  102

1.用户自定函数: 应用场景:当有一些需求,hive内置函数满足不了sql查询的时候,用户可以通过java封装一个函数。 分类: udf:输入一条数据,返回一条,1对1. UDAF:输入多条数据,输出1条。多对1. UDTF:输入一条数据,输出多条数据。1对多。 UDF用的是最多的。 UDF函数可以直接应用于select语句,对查询结构做格式化处理后,在输出内容 2.编写UDF函数 的时候需要注意一下几点: (1)在pom文件中导入相关依赖: <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>1.2.1</version> </dependency> (2)自定义UDF需要继承org.apache.hadoop.hive.ql.exec.UDF. (3)需要evaluate函数 package hadoopdemo; import org.apache.hadoop.hive.ql.exec.UDF; public class HiveUdf_demo extends UDF { //方法名称必须是evaluate //将某个字段全部转成小写 public String evaluate(String clo) { // String lowerCase = clo.toLowerCase(); return lowerCase; } } (4)把程序打包放到目标机器上去 (5)进入hive客户端,添加jar包:add jar /usr/local/testdata/hive_UP.jar; (6)创建临时函数:hive>create temporary function f_up as 'hive_demo.hive_udf'; 查询HQL语句: select f_up(line) from wc_test; 销毁临时函数:hive>drop temporary function f_up; 注:UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF。
最新回复(0)