在我的配置单元脚本的开头,我有以下语句:
使用 jar z 创建函数 x 作为 y;
现在,如果函数已经存在,它会给我一个错误:
处理语句时出错:失败:执行错误,从 org.apache.hadoop.hive.ql.exec.FunctionTask 返回代码 1。 AlreadyExistsException(消息:函数 x 已经存在)
如果我使用 create function if not exists x as y using jar z;
,我会得到这个错误:
编译语句时出错:FAILED:ParseException line 7:192 cannot recognize input near 'if' 'not' 'exists' in function identifier
声明 create function if not exists
可以在 Impala 中使用,但 Hive 似乎不支持它。这是一种在 Hive 中做类似事情的方法吗?
最佳答案
我在配置单元中使用以下语句来创建临时函数。
ADD JAR hdfs:///tmp/udfs/jar1.jar;
DROP FUNCTION IF EXISTS rowid;
CREATE TEMPORARY FUNCTION rowid AS 'com.example.hive.jartest.RowIdUDF';
关于hadoop - Hive:如果不存在则创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51743367/