1.java继承UDF类编写udf函数(evaluate())(一个类一个方法)
2.打fat包(包括所有依赖文件)
3.把jar包放到linux上
–临时udf函数
1.在hive命令行中使用 add jar jar包路径
,即可加载到临时系统中
2.可能需要将签名文件删除zip -d /root/testudf.jar 'META-INF/.RSA' 'META-INF/*SF'
3…create temporary function 函数名 as '方法的全类名';
–永久udf函数
1.在linux命令行使用hdfs命令把jar上传到hdfs的路径
2.可能需要将签名文件删除zip -d /root/testudf.jar 'META-INF/.RSA' 'META-INF/*SF'
3.create function 函数名 as '方法的全类名' using jar 'jar包的hdfs路径';
测试:
1.在一个时间基础上。进行小时的加减,得到新的时间
select 函数名("时间1","时间2");
2.计算两个时间的时间差(小时)