7.3 自定义 UDF 函数
自定义一个可以把大写字母变成小写字母的函数
7.3.1 步骤1: 创建 maven 工程
创建 maven 工程, 并导入依赖
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.3.3</version>
</dependency>
7.3.2 步骤2: 创建类, 并继承UDF
package com.atguigu.func;
import org.apache.hadoop.hive.ql.exec.UDF;
public class MyLower extends UDF {
// 函数名不能修改, 虽然不是从父类继承过来的
public String evaluate (final String s) {
if (s == null) {
return null;
}
return s.toLowerCase();
}
}
7.3.3 步骤3: 把类打成 jar
包, 并上传到服务器
jar
的名字可以随意设置.在服务的地址没有强制要求.
我的放在了: /opt/module/jars
目录下.
7.3.4 步骤4: 添加 jar
包到 ClassPath.
add jar /opt/module/jars/datas/tolower.jar;
7.3.5 步骤5: 创建临时函数与自定义的 UDF 类管理.
create temporary function mylower as "com.atguigu.func.MyLower";
7.3.6 步骤6: 测试临时函数是否可用
select ename, udf_lower(ename) lowername from emp;