hive下UDF函数的使用

1、编写函数

package com.example.hive.udf;

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

public final class LowerCase extends UDF {
public Text evaluate(final Text s) {
if (s == null) { return null; }
return new Text(s.toString().toLowerCase());
}
}
package com.example.hive.udf;

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

public final class LowerCase extends UDF {
public Text evaluate(final Text s) {
if (s == null) { return null; }
return new Text(s.toString().toLowerCase());
}
}

2、用eclipse进行jar包导出
选中package 或者是java 文件夹,右击export jar

3、将导出的hiveudf.jar复制到hdfs上

hadoop fs -copyFromLocal hiveudf.jar hiveudf.jar

4、进入hive,添加jar,

add jar hdfs://localhost:9000/user/root/hiveudf.jar

5、创建函数
临时的函数
CREATE TEMPORARY FUNCTION my_lower AS ‘com.example.hive.udf.LowerCase’;

创建永久函数
CREATE FUNCTION tmp_db.json2map AS ‘brickhouse.udf.json.JsonMapUDF’ USING JAR ‘hdfs:///data/hiveudf/hivebrickhouseudf.jar’;
USING JAR 只能是hdfs路径下的jar包。

6、调用

select LowerCase(name) from teacher;

注:这种方法只能添加临时的函数,每次重新进入hive的时候都要再执行4-6,要使得这个函数永久生效,要将其注册到hive的函数列表

7、hive 查看函数
SHOW FUNCTIONS;
DESCRIBE FUNCTION ; 描述函数
DESCRIBE FUNCTION EXTENDED ; 更具体的描述函数如何使用

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-PermanentFunctions
https://cwiki.apache.org/confluence/display/Hive/HivePlugins

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

mtj66

看心情

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

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

打赏作者

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

抵扣说明:

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

余额充值