一 新建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中注册

  

  

最新文章

  1. WIn2003的IIS6解决IE11登录问题。
  2. VFS分析(一)挂载(持续更新)
  3. Linux MTD系统剖析【转】
  4. python实现线程池
  5. SequoiaDB的数据分区操作
  6. git 客户端 代码下载与提交
  7. TOMCAT启动完成但是ECLIPSE仍然显示starting....
  8. java新版中唤醒指定线层对象
  9. 修改编辑器为Markdown编辑器
  10. 如何解析超长的protobuf zhuan
  11. Alpha冲刺10
  12. mysql time zone时区的错误解决
  13. JavaScript学习总结(八)——JavaScript数组
  14. 学习GIT 版本控制的好去处 另GDB资料
  15. imuxsock lost 353 messages from pid 20261 due to rate-limiting 解决办法
  16. tp 事务处理
  17. ASP.NET之报表--RDLC(一)---附源码
  18. SQL Compare 10.4.8.87 Edition 数据库比较工具 完全破解+使用教程
  19. java sleep()和wait()的区别
  20. 【独立开发人员er Cocos2d-x实战 013】Cocos2dx 网络编程实战之星座运势

热门文章

  1. 笔试面试的路上——努力ing
  2. bunoj 13124(数位dp)
  3. UVALive 6560 The Urge to Merge
  4. create-trigger-insert-pwd
  5. 直播未来属于RTMP还是HTTP
  6. tcp连接是基于socket通信的吗
  7. celery中的生产者消费者问题
  8. 解决putty自动断开的问题
  9. golang strings.Split的疑问
  10. c++ 库 boost安装