Hive自定义函数(UDF),可以帮助用户轻松实现在hql语句中展现自定义查询结果。
这里以一个简单的连接函数来实现用户自定义函数,假设表结构如下:
表中只有两个简单的字段,id和name。这里实现一个将id和name用"-"连接的函数,最后输出结果。
第一步、书写StringJoin类,继承UDF,实现名称为evaluate的方法;
书写完成之后打包stringjoin.jar,准备上传。
第二步、hive命令行下运行add jar /path/to/stringjoin.jar;
创建临时函数.
create temporary function strjoin as "com.lenovo.hive.udf.StringJoin";
这样在hql语句中就可以使用strjoin函数了。这里create temporary function时并没有指定函数名,默认采用evaluate,所以
这个名字是固定的,不能随便改动。在UDF类中也并没有找到evaluate这个方法,我猜测这个名字是hive固定写法。
第三步、利用strjoin函数查询结果。
结果和预期是一致的,UDF函数生效了。