hadoop - Hive:如果不存在则创建函数

标签 hadoop hive hiveql

在我的配置单元脚本的开头,我有以下语句:

使用 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/

相关文章:

hadoop - HDFS block 与HDD存储 block

hadoop - 如何在CDH4中添加主机

hadoop - YARN UNHEALTHY 节点

hadoop - Hive Warehouse路径使用-默认路径而不是我自己的hdfs路径

hive - 选择满足配置单元中条件的上一行

hadoop - 是否可以通过 Hive QL 获取角色信息?

google-cloud-platform - 将 hive 分区的 ORC 数据加载到 bigquery

hadoop - 使用Hive进行表数据从一个Hadoop环境到另一个Hadoop环境的传输并使用oozie进行调度

mysql - 编写一个查询,其列名基于 sql 或 hive hql 中的另一个表

hadoop - 如何将分区添加到带有嵌套数据的配置单元表中?