Hive自定义函数

前言

 想与你们共同学习,想与你们一起努力,想得到你们的支持与喜欢~

内置函数

# 查看hive内置函数
show functions;

# 查看函数描述信息
desc function max;

用户自定义函数UDF

UDF:user-defined function

操作作用于单个数据行,并且产生一个数据行作为输出。大多数函数都属于这一类(比如数学函数和字符串函数)。length('abc') = 3

 1. 用户自定义函数-UDF

导入依赖:


<dependencies>
        <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-exec</artifactId>
                <version>3.1.2</version>
        </dependency>
</dependencies>

 2. 定义类

# 1.定义一个类继承UDF
1. 必须继承UDF
2. 方法名必须是evaluate
package function;

import org.apache.hadoop.hive.ql.exec.UDF;

public class HelloUDF extends UDF {
    public String evaluate(String s1){
        return "你好,"+s1;
    }

}

 3. 配置maven打包环境,打包jar

<properties>
    <!--解决编码的GBK的问题-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
        <finalName>funcHello</finalName>
</build>
# 打包
mvn package

3. jar包上传linux,导入到函数库中

 4. 在hive中执行命令

# 在hive命令中执行
add jar /opt/data/funcHello.jar; # hive session级别的添加,
delete jar /opt/data/funcHello.jar; # 如果重写,记得删除。

create temporary function hello as "function.HelloUDF"; # temporary是会话级别。
# 删除导入的函数
drop temporary function hello;

5. 查看函数并使用函数

-- 1. 查看函数
desc function hello;
-- 2. 使用函数进行查询
select hello(name) from t_person;

 永久函数和临时函数

临时函数和永久函数的区别:临时函数仅对当前session(黑窗口)有效。永久函数是全局的。

1. 临时函数
        1.1 添加jar包的两种方法
            方法一: add jar /home/hadoop/lib/hive-1.0-SNAPSHOT.jar;
            方法二: 在hive的文件夹下面创建auxlib文件夹,将jar包上传到auxlib文件夹下面,重启hive。

        1.2 创建临时函数
             语法:CREATE TEMPORARY FUNCTION function_name AS class_name;  
                    function_name函数名   
                    class_name 类路径,包名+类名
                    
        1.3 删除临时函数
            语法:DROP TEMPORARY FUNCTION [IF EXISTS] function_name;
            
2. 永久函数
       2.1 在HDFS上创建hivelib目录,将jar包上传到HDFS的hivelib目录下
           hdfs dfs -mkidr /hivelib
           hdfs dfs -put funcHello.jar /hive/lib
       2.1 创建永久函数的语法:
            CREATE FUNCTION [db_name.]function_name AS class_name USING JAR 'hdfs://hadoop10:8020/hivelib/funcHello.jar'

相关推荐

  1. hive定义函数

    2024-05-25 19:48:34       7 阅读
  2. Hive定义函数详解

    2024-05-25 19:48:34       41 阅读
  3. Hive定义UpperGenericUDF函数

    2024-05-25 19:48:34       20 阅读
  4. Hive定义UDF函数

    2024-05-25 19:48:34       19 阅读
  5. hive定义udtf函数

    2024-05-25 19:48:34       12 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-25 19:48:34       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-25 19:48:34       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-25 19:48:34       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-25 19:48:34       20 阅读

热门阅读

  1. AtCoder Beginner Contest 354 C - AtCoder Magics

    2024-05-25 19:48:34       10 阅读
  2. MFC 编程:Windows 桌面应用程序开发框架

    2024-05-25 19:48:34       10 阅读
  3. LLaMA-Factory 微调训练

    2024-05-25 19:48:34       9 阅读
  4. Linux系统——面试题分享

    2024-05-25 19:48:34       7 阅读
  5. HTTP与HTTPS的前尘往事

    2024-05-25 19:48:34       9 阅读
  6. C# WPF入门学习(一)

    2024-05-25 19:48:34       8 阅读
  7. 2024年3月小程序类目调整汇总公告

    2024-05-25 19:48:34       9 阅读
  8. 机柜里面的设备有哪些

    2024-05-25 19:48:34       10 阅读
  9. Go语言标准库之log和三方库zap

    2024-05-25 19:48:34       10 阅读
  10. zookeeper选主之LeaderLatch

    2024-05-25 19:48:34       8 阅读