在使用hive的时候,hive本身自带的函数不足以满足于我们需求的情况下,我们可以自定义满足我们需求的函数。
一、hive自定义函数步骤:
1、继承org.apache.hadoop.hive.ql.exec.UDF;
2、写固定的evaluate()方法。这个方法名字是固定的。
注意:evaluate方法支持重载。
语言 方法
9283 uQpYS413hP
gQ3qN抖音0播放怎么回事
1536 .11.10 17-36-57
二、实例演示
1、代码
package com.hive.test;import org.apache.hadoop.hive.ql.exec.UDF;public class HiveUdf extends UDF{ public String evaluate(int num){ if(num>1000){ return "very good"; }else if(num>500){ return "good"; }else { return "bad"; } }}
2、将此代码打成jar包并上传linux
3、准备测试数据
[root@cmaster test]# vim num.txt
4、创建表并且导入数据
hive> create table mytest(id int) row format delimited fields terminated by " ";hive> load data local inpath "/test/num.txt" into table mytest;
5、将jar加载到hive中
hive> add jar /test/hiveUdf_jar/hive_test.jar > ;
6、创建一个临时函数指向上边编译的类
hive> create temporary function myF as "com.hive.test.HiveUdf";
7、可以调用这个函数了
hive> select myF(id) from mytest;OKvery goodgoodgoodbadTime taken: 1.742 seconds, Fetched: 4 row(s)
8、调用完函数可以删除
hive> drop temporary function myF;
注意:查询hive所有函数使用 show functions
hive> show functions;