1、编写函数的方法,下面方法是由java编写的
继承UDF类,然后去重写evaluate方法,
2、方法写完后进行验证是否符合自己的预期效果,如果符合把这个类打包为jar包,上传到服务器,然后通过hadoop fs -put 的方式上传到集群,
3、上传之后通过hadoop fs -chmod 777 去修改文件的权限,修改权限主要是为了让所有的用户都能使用这个永久函数,这个根据自己情况去修改。
例如:A用户去创建自定义函数(永久),文件上传到集群时,权限为700,那么这个永久函数只能是A用户去使用,同组下的B用户是不能调用这个函数的,会报如下错误,(invalid function 函数名)
4、修改完权限后,进入hive,执行命令(确保当前用户有admin权限)
set role admin;切换admin权限
show current roles;查看当前用户权限
create function ① as '②' using jar '③';
①是代表方法名,②代表包名加类名,如cn.com.test,③代表jar包存放HDFS的路径
create function add_prefix
as 'com.test.AddPrefix'
using jar 'hdfs:///wh/test/addPrefix.jar'
通过select add_prefix("参数");进行验证
小总结: