1.编写java类,继承UDF,注意方法名需要覆盖evaluate方法.之前测试时发现方法名可以任意,后来发现还是不行,所以还是用evalute这个方法名吧
1 import org.apache.hadoop.hive.ql.exec.UDF; 2 3 public class MyLower extends UDF { 4 5 public String evaluate (final String s) { 6 7 if (s == null) { 8 return null; 9 } 10 11 return s.toString().toLowerCase(); 12 } 13 }
2.打成jar包上传到linux上
3,启动hive后进行关联
add jar /opt/module/data/jar/test.jar;
注意如果你想对jar替换,最好先delete jar xxx,直接add不会进行覆盖,这样你仍然使用的是旧的jar
4.创建函数
create temporary function test as "hive.MyLower";
as之后是你编写的类的全限定名称
删除临时函数 drop temporary function xxx;
5.测试