1 在hive/ql/src/java/org/apache/hadoop/hive/ql/udf/ 下放置一个java文件,其中包含你自定义的类, 重载类中evaluate函数实现你所需要的功能。 注意异常、空值得处理。
比如,UDFSplit.java, 提取String s中,按String d分隔后的第 start个字段。
s="a,b", d="," start=1, 则返回 "a".
2 在hive/ql/src/java/org/apache/hadoop/hive/ql/exec目录,在类FunctionRegistry.java中注册udf函数 registerudf("yourfuncname",YourClass.class, OperatorType.PREFIX, false);
3 最后重新编译hive代码,运行hive目录下的buildhive.sh
udf, user define function基本上可以实现你所有想要的功能。 定义好函数后就可以像hive的built-in函数一样使用,sum,substr