更新时间:2022-02-24 GMT+08:00

使用udf函数提示"Invalid function"

问题现象

在 Hive客户端中使用Spark创建UDF函数时,报出"ERROR 10011","invalid function"的异常,如下:

Error: Error while compiling statement: FAILED: SemanticException [Error 10011]: Line 1:7 Invalid function 'test_udf' (state=42000,code=10011)

在多个HiveServer之间使用UDF也存在上述问题。例如,在HiveServer1中使用HiverServer2创建的UDF,如果不及时同步元数据信息,连接HiveServer1的客户端也会提示上述错误信息。

可能原因

多个HiveServer之间或者Hive与Spark之间共用的元数据未同步,导致不同HiveServer实例内存数据不一致,造成UDF不生效。

解决方案

需要将新建的UDF信息同步到HiveServer中,执行reload function操作即可。