欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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         |
 
+-------------+-----------------+-------------+---------------+
相关标签: impala