怎么将hive自定义UDAF函数永久加载到hive里


按网上很多一致的说法步骤如下:
添加函数自定义方法文件$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/udf/UDAFFunction.java
修改$HIVE_HOME/src/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java文件
import org.apache.hadoop.hive.ql.udf.UDAFFunction;
registerUDF(“method”, UDAFFunction.class,false)或是registerGenericUDAF(“method”,new UDAFFunction());   
都未能成功。show functions并没有。如果使用临时注册函数方法可以使用。
我的实现的UDAF函数是直接下载hive的udaf的一些内置函数源码修改的。

注:由于是刚接触hive,所以有些疑问。发现这里面并没有class文件,重启hive会自动编译生成吗。还是需要导入jar包,但是手动导入jar包后,也不能用。求哪位成功加入的大神解答。

2 个解决方案

#1


临时加载:
1.首先添加jar包。hive> ADD JAR /dir/dir/*****.jar;
2.创建函数hive> CREATE TEMPORARY FUNCTION myfunction AS 'com.example.MyFunction';
永久加载:
在.hiverc文件中添加相关语句

#2


重新编译下hive源码的QL包
新增org.apache.hadoop.hive.ql.udf.yourClass
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告