HIVE 编写自定义函数UDF
2024-08-27 17:33:56
一 新建JAVA项目 并添加 hive-exec-2.1.0.jar 和hadoop-common-2.7.3.jar
hive-exec-2.1.0.jar 在HIVE安装目录的lib目录下
hadoop-common-2.7.3.jar在hadoop的安装目录下的\share\hadoop\common
二 编一个一个类并继承UDF 并重写evaluate方法
下面以rownum为例
package com.udf; import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text; public class RowNumUDF extends UDF{ public static String signature = "_";
public static int order = 0; public int evaluate(Text text){ if(text != null){ //分组排序的依据,列名,通常为主键
String colName = text.toString(); //处理第一条数据
if(signature == "_"){ //记下分组排序的字段:主键,并将rownum设为1
signature = colName;
order = 1; //返回rownum
return order;
}else{
//首先比对是否和上一条主键相同
if(signature.equals(colName)){ //rownum依次加1
order++;
return order;
}else{
//如果主键改变,将rownum设为1
signature = colName;
order = 1;
return order;
}
}
}else{
//如果主键为空,则返回-1
return -1;
}
}
}
三 导出位jar包并在HIVE中注册
最新文章
- WIn2003的IIS6解决IE11登录问题。
- VFS分析(一)挂载(持续更新)
- Linux MTD系统剖析【转】
- python实现线程池
- SequoiaDB的数据分区操作
- git 客户端 代码下载与提交
- TOMCAT启动完成但是ECLIPSE仍然显示starting....
- java新版中唤醒指定线层对象
- 修改编辑器为Markdown编辑器
- 如何解析超长的protobuf zhuan
- Alpha冲刺10
- mysql time zone时区的错误解决
- JavaScript学习总结(八)——JavaScript数组
- 学习GIT 版本控制的好去处 另GDB资料
- imuxsock lost 353 messages from pid 20261 due to rate-limiting 解决办法
- tp 事务处理
- ASP.NET之报表--RDLC(一)---附源码
- SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程
- java sleep()和wait()的区别
- 【独立开发人员er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势