11、Hive数据仓库——UDF、UDTF

Hive数据仓库——UDF、UDTF

UDF:一进一出

案例一

创建Maven项目,并加入依赖

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

编写代码,继承org.apache.hadoop.hive.ql.exec.UDF,实现evaluate方法,在evaluate方法中实现自己的逻辑

package com.liangzai.UDF;

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

public class MyUDF extends UDF {
   
   
    // 自定义UDF 需要继承UDF类,实现evaluate方法
    public String evaluate(String gender) {
   
   
        // 男 女
        String resStr = "";
        resStr = gender.replace("男","boy");
        resStr = resStr.replace("女","girl");
        return resStr;
    }
}

打成jar包并上传至Linux虚拟机

在hive shell中,使用 add jar 路径将jar包作为资源添加到hive环境中

add jar /usr/local/soft/jars/Hive-1.0.jar;

使用jar包资源注册一个临时函数,fxxx1是你的函数名,'MyUDF’是主类名

create temporary function my_udf as 'com.liangzai.UDF.MyUDF';

使用函数名处理数据

select my_udf(gender) as new_gender from students limit 10;
select *,my_udf(gender) as new_gender from students limit 10;

案例二

编写代码,继承org.apache.hadoop.hive.ql.exec.UDF,实现evaluate方法,在evaluate方法中实现自己的逻辑

package com.liangzai.UDF;

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

public class MyUDF1 extends UDF {
   
   
    public String evaluate(String clazz) {
   
   
        // 自定义UDF 需要继承UDF类,实现evaluate方法
        // 班级
        String resStr = "";
        resStr = clazz.replace("一","1");
        resStr = resStr.replace("二","2");
        resStr = resStr.replace("三",
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liangzai2048

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值