开发Hive自定义函数
来源:互联网 发布:js提示框代码 编辑:程序博客网 时间:2024/06/03 07:40
推荐文章《hive2.1.1 + hadoop2.8.0 + windows7(不用cygwin)搭建Hive》
1、开发自定义函数
自定义类继承hive提供的UDF类
UDF :(user define function)用户自定义函数
定义evaluate方法,可以重载多个,hive会自动根据参数类型决定调用那个方法
package com.cn.test.hive;import org.apache.commons.lang3.StringUtils;import org.apache.hadoop.hive.ql.exec.UDF;import java.util.HashMap;import java.util.Map;public class MyTestUDF extends UDF { private static final Map<String, String> areaMap = new HashMap<String, String>(); static { areaMap.put("135", "福建"); areaMap.put("136", "浙江"); areaMap.put("137", "广东"); areaMap.put("138", "北江"); areaMap.put("139", "上海"); } /** * 根据手机号获取归属地 */ public String evaluate(String phoneNum) { if(StringUtils.isBlank(phoneNum) || phoneNum.length() < 3){ return ""; } String area = areaMap.get(phoneNum.substring(0, 3)); return area == null? "未知":area; } /** * 统计上行和下行流量 */ public int evaluate(int upFlow, int downFlow) { return upFlow + downFlow; }}
2、打包并上传
将自定义函数的jar包拷贝到HIVE_HOME\lib文件夹下(windows下推荐使用此方法,需重启hive客户端)
或使用hive客户端执行 add jar '/home/myUDF.jar'(linux下推荐使用此方法)
3、创建hive函数
create temporary function areasum as 'com.cn.test.hive.MyTestUDF';
4、建表
create table t_user_udf(phone string, up_flow int, down_flow int)
row format delimited
fields terminated by ',';
5、上传数据
在本地文件夹创建data.txt,内容:
13350467821,100,233013450467821,120,200213550467821,100,21013650467821,130,20012313750467821,122,20013850467821,100,210213
在hive客户端执行:
load data local inpath 'e:/data.txt' into table t_user_udf;
6、使用自定义函数
select phone, areasum(phone), areasum(up_flow, down_flow) from t_user_udf;
阅读全文
0 0
- 开发Hive自定义函数
- Hive自定义函数UDF开发
- Hive自定义函数UDAF开发
- Hive 自定义函数(UDF)开发
- hive的自定义函数开发和测试
- 开发HIVE的UDF自定义函数
- 开发HIVE的UDTF自定义函数
- 开发HIVE的UDF自定义函数
- 开发HIVE的UDTF自定义函数
- 自定义-Hive自定义函数
- Hive 自定义函数函数
- Hive 自定义函数函数
- HIVE中的自定义函数
- hive用户自定义函数
- HIVE中的自定义函数 .
- HIVE中的自定义函数
- HIVE 自定义函数 UDF
- HIVE中的自定义函数
- 关于上拉输入、下拉输入、模拟输入、浮空输入、推挽输出、开漏输出、复用输出的区别 [此博文包含图片] (2016-08-04 14:01:56) 转载 ▼ 1、上拉输入:上拉就是把电位拉高,比如
- 2017年BackBox5和Ubuntu16.04.1国内更新源
- python 高阶函数
- spring的配置及ioc注解总结
- linux系统很卡的基本排查方法
- 开发Hive自定义函数
- python3 :pymysql
- vue常见报错原因收集
- Live555源码彻底解密(根据testRTSPClient讲解)
- Android JNI知识简介
- 550W
- 使用Spring Data MongoDB 做聚合操作出现的问题及解决方案
- 【OpenCV】形态学处理
- 大文件拆分程序