hive入门UDF之星座计算(根据hive编程指南)
来源:互联网 发布:女朋友太紧 知乎 编辑:程序博客网 时间:2024/05/21 17:30
环境准备
:
hadoop2.7+centos7+hive1.2.1+VirtualBox+xshll+eclipse+jdk1.8
数据准备:
- 启动hadoop集群和hive:
# start-dfs.sh#source /etc/profile (注:本人集群搭建应该有问题,每次启动hive时都得先运行一下这个命令)#hive
- 建立表格:
create table littlebigdata(name string,email string,bday string,ip string,gender string,anum int)row format delimited fields terminated by ',';
- 导入数据:
load data local inpath '/root/data/data6' into table littlebigdata;
“/root/data/data6”修改成自己要上传数据的路径
数据到这里就准备好了,接下来就是编写自己的UDF了
编写UDF:
打开Eclipse
package hivejar;import java.text.SimpleDateFormat;import java.util.Date;import org.apache.hadoop.hive.ql.exec.Description;import org.apache.hadoop.hive.ql.exec.UDF;@Description(name="zodiac", value="_FUNC_(date)-from the input date string"+"or separate month and day arguments,returns the sign of the Zodiac", extended ="Example :\n"+"> SELECT _FUNC_(data_string) from src;\n"+ ">SELECT _FUNC_(mouth,day0) FORM src;")public class Zodiac extends UDF { private SimpleDateFormat df; public Zodiac(){ df=new SimpleDateFormat("MM-dd-yyyy"); } public String evaluate(Date bday){ return this.evaluate(bday.getMonth(),bday.getDay()); } public String evaluate(String bday){ Date date =null; try{ date = df.parse(bday); }catch (Exception ex){ return null; } return this.evaluate(date.getMonth()+1,date.getDay()); } //在这里只写了两个月 public String evaluate(Integer month,Integer day){ if (month==1){ if(day<20){return "Capricorn"; }else{ return "Aquarius"; } } if(month==2){ if(day<19){ return "Aquarius"; }else{ return "Pisces"; } } return null; }}
然后打包成jar包,然后上传到虚拟机中,
其中 zodiac.jar就是打好的jar包
在hive会话中将这个jar文件加载到类路径下:
hive> add jar /root/data/zodiac.jar;hive> create temporary function zodiachive> as 'hivejar.Zodiac';
路径根据自己实际情况修改,
describe function extended zodiac;
到这里就已经可以使用了
hive> select name ,bday,zodiac(bday) from littlebigdata;
阅读全文
0 0
- hive入门UDF之星座计算(根据hive编程指南)
- hive之UDF编程
- Hive编程入门指南
- Hive UDF开发指南
- Hive的UDF编程
- Hive UDF 编程
- Hive中UDF编程
- hive UDF编程
- hive之UDF整理
- 【Hive】Hive编程指南
- Hive学习之自定义函数(UDF)
- HIVE UDF(1)
- hive udf (python)
- hive入门学习:UDF开发
- hive编程指南之数据类型
- 【Hive】Hive编程指南(Part 2)
- 十八、Hive 中UDF编程
- hive udf
- AIDL的使用
- 用JavaScript重写alert
- Python 的 Magic Methods 指南
- 查询格式为json的postgresql列
- C++11 获取系统时间库函数 time since epoch
- hive入门UDF之星座计算(根据hive编程指南)
- mysql-5.5源码编译安装(附参数对照表)
- Https:从tcp建立连接到https接收到第一个数据包,到底发生了什么?
- DOM范围
- 活动的最佳实践
- Java业务代理模式
- 关于android中如何刷新ui
- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 请求地址映射(@RequestMapping)