Hive 自定义函数编程

Hive 自定义函数编程

Hive中的自定义函数简介

(1) 在类中创建自定义函数。自定义UDF需要继承'org.apache.hadoop.hive.ql.exec.UDF',实现evaluate函数,evaluate函数支持重载。

package demo.udf;

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

public class ConcatString extends UDF {
// string can not translation in hadoop
public Text evaluate(Text a, Text b) {
    return new Text(a.toString() + "*******" + b.toString());
}
}

(2) 将该类所在的包导出成jar包,放入linux目录下。如 jar包名为 concatstring.jar

(3) 进入hive客户端,删除旧的jar包

hive> delete jar /dir/concatstring.jar;

(4) 添加新的jar包

hive> add jar /dir/concatstring.jar

(5) 创建临时函数,指向jar包中的类:.语法  create temporary function <函数名> as 'java类名';

hive> create temporary function myconcat as 'demo.udf.ConcatString';

(6) 使用临时函数

select myconcat (''Hello','World');
drop temporary function  myconcat;



hive> delete jar /root/pl62716/hive/contactString.jar;
Deleted [/root/pl62716/hive/contactString.jar] from class path
hive> add jar /root/pl62716/hive/contactString.jar;
Added [/root/pl62716/hive/contactString.jar] to class path
Added resources: [/root/pl62716/hive/contactString.jar]
hive> create temporary function myconcat as 'demo.udf.ConcatString';
OK
Time taken: 2.747 seconds
hive> select myconcat('HELLO','world');
OK
Hello*******world
Time taken: 0.598 seconds, Fetched: 1 row(s




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

野狼e族

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

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

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

打赏作者

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

抵扣说明:

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

余额充值