Impala自定义函数
程序员文章站
2022-03-05 14:31:54
...
UDF实现要点:
- 根据集群中Hive的版本导入对应版本的hive-exec.jar
- 自定义UDF类要继承接口UDF
- 实现evaluate()方法
1、需要用到的依赖:
<dependencies>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
2、自定义UDF类:
package com.atguigu.hive;
import org.apache.hadoop.hive.ql.exec.UDF;
public class Lower extends UDF {
public String evaluate (String s) {
if (s == null) {
return null;
}
return s.toLowerCase();
}
}
3、打成jar包上传到服务器/root/jars/ hive_udf-0.0.1-SNAPSHOT.jar
4、将jar包上传到hdfs的指定目录
hadoop fs -put hive_udf-0.0.1-SNAPSHOT.jar /impala_udf/
5、注册函数
[hadoop103:21000] > create function mylower(string) returns string location 'hdfs://impala_udf/hive_udf-0.0.1-SNAPSHOT.jar' symbol='com.impala.udf.mylower_udf';
6、使用自定义函数
[hadoop103:21000] > select ename, mylower(ename) from emp;
7、通过show functions查看自定义的函数
[hadoop103:21000] > show functions;
Query: show functions
+-------------+-----------------+-------------+---------------+
| return type | signature | binary type | is persistent |
+-------------+-----------------+-------------+---------------+
| STRING | mylower(STRING) | JAVA | false |
+-------------+-----------------+-------------+---------------+
下一篇: 统计推断 笔记(一)