有两种方式写UDF
一、就是网上比较常见就是,写一个java project然后导入hive依赖包,写一个继承UDF的一个类,实现功能
然后通过以下脚本注入
add jar /home/hadoop/hive_udf/hiveUDF.jar;
create temporary function hash_code as 'org.apache.hadoop.hive.ql.udf.UDFHashCode';
二、第一种方法只能创建临时的udf函数,第二种方法是找到hive的源码,
如果版本不一样,那就算了,还是用第一种,
如果有源码的话,可以在hive-exec包下面的
\ql\src\java\org\apache\hadoop\hive\ql\exec\FunctionRegistry.java
中添加
registerUDF("hash_code", UDFHashCode.class, false);
然后将这两个人类的class文件放到hive-exec对应位置替换,然后将这个包上传覆盖掉线上的jar包就可以了