======================1 转换小写==========================
hive> select * from student;
OK
2 BEBETTER
1 HUANGPENG
Time taken: 0.149 seconds, Fetched: 2 row(s)
hive> desc student;
OK
id int
name string
<1>创建java工程,导入hive包中lib文件夹下所有.jar包
package com.hp.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class ToLowerCase extends UDF {
public String evaluate(String field) {
return field.toLowerCase();
}
}
<2>导出jar包到本地,并上传到服务器
<3>hive中执行add jar命令(只在此命令后中有效)
hive> add jar /home/hadoop/worktmp/20170318/hiveudf.jar;
<4>创建临时函数
hive> create temporary function tolow as 'com.hp.hive.udf.ToLowerCase';
<5>调用
hive> select id, name, tolow(name) from student;
OK
2 BEBETTER bebetter
1 HUANGPENG huangpeng
Time taken: 0.136 seconds, Fetched: 2 row(s)
======================2 得到省份==========================
hive> select * from province;
OK
1 13612341234
2 13712342343
3 13312312312
4 13921231231
5 13021312312
Time taken: 0.202 seconds, Fetched: 5 row(s)
hive> desc province;
OK
id int
phonenbr string
Time taken: 0.088 seconds, Fetched: 2 row(s)
<1>创建java工程,导入hive包中lib文件夹下所有.jar包
package com.hp.hive.udf;
import java.util.HashMap;
import org.apache.hadoop.hive.ql.exec.UDF;
public class GetProvin extends UDF{
public static HashMap<String, String> provinceMap = new HashMap<String, String>();
static {
provinceMap.put("130", "Hubei");
provinceMap.put("133", "Beijing");
provinceMap.put("136", "Shenzhen");
provinceMap.put("137", "Haerbing");
provinceMap.put("139", "Taiwan");
}
public String evaluate(String pnumber) {
String start3numbe = pnumber.substring(0, 3);
String province = provinceMap.get(start3numbe);
return province == null ? "huoxing" : province;
}
}
<2>导出jar包到本地,并上传到服务器
<3>hive中执行add jar命令(只在此命令后中有效)
hive> add jar /home/hadoop/worktmp/20170318/hiveudf4.jar;
<4>创建临时函数
hive> create temporary function getprovin as 'com.hp.hive.udf.GetProvin';
<5>调用
hive> select id, phonenbr, getprovin(phonenbr) from province;
OK
1 13612341234 Shenzhen
2 13712342343 Haerbing
3 13312312312 Beijing
4 13921231231 Taiwan
5 13021312312 Hubei
Time taken: 0.136 seconds, Fetched: 5 row(s)
Hive UDF开发
最新推荐文章于 2023-12-17 21:51:44 发布