我用java编写了一个自定义的udf,并打包在一个 jar
文件。然后,我使用以下方法将其添加到hive中:
create temporary function isstopword as 'org.dennis.udf.IsStopWord';
一切都很顺利。但是,在我更新了udf中的一小部分之后,我再次执行了前面的步骤,因此hive显然仍然使用旧版本的udf。
如何刷新自定义项的更新版本?
我试图删除旧的 jar
在hdfs中创建文件,并使用以下命令删除udf函数:
DROP TEMPORARY FUNCTION IF EXISTS isstopword;
然后重新创建一个同名的新函数,它仍然使用旧版本的udf。
2条答案
按热度按时间r6hnlfcb1#
我按照这个解决了document:http用法:/bdlabs.edureka.co/static/help/topics/cm\u mc\u hive\u udf.html\concept\u zb2\u rxr\u lw\u unique\u 1
一般按以下步骤进行:
在hive-site.xml中添加配置,然后重新启动配置单元服务器。
删除hdfs中的旧jar文件,并上载新jar文件。
DROP TEMPORARY FUNCTION IF EXISTS isstopword;
在配置单元控制台中,运行list jar;
要检查本地jar文件,它将打印如下内容:然后在服务器文件系统中删除它们。
再次创建临时函数。
通过以上步骤,我成功了!
vngu2lb82#
您添加的所有jar和创建的临时函数仅特定于特定的配置单元会话。一旦退出该会话,所有临时函数将永远丢失。
是否尝试关闭会话并再次重复这些步骤。