hadoop - 创建 hive UDF

标签 hadoop hive

嗨, friend 们,我是 Hive 新手。我正在尝试在 Hive 中创建一个名为 ConvertDateFormatUDF 的 UDF 创建临时函数时出现以下错误:

hive>add jar /home/cloudera/date.jar

将/home/cloudera/date.jar 添加到类路径中 添加资源:/home/cloudera/date.jar

hive>CREATE TEMPORARY FUNCTION fun as 'com.db.acedq.opal.hive.ConvertDateFormatUDF';
java.lang.NoClassDefFoundError: org/apache/pig/EvalFunc
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Caused by: java.lang.ClassNotFoundException: org.apache.pig.EvalFunc
FAILED: Execution Error, return code -101 from org.apache.hadoop.hive.ql.exec.FunctionTask

请有人帮助我,因为我是 hive 新手。有人可以告诉我要遵循的步骤

最佳答案

您的 hive UDF 在某种程度上引用了 Pig 类,该类可能位于 pig.jar 文件中,但不一定位于 Hive 环境中的类路径中。

可以使用 add jar 添加外部 jar,就像您自己的用户创建的 jar 一样。例如,

hive> add jar /usr/lib/pig/pig.jar;

我不确定你的 UDF 想要做什么,但“ConvertDateFormat”听起来像是一个非常简单的方法,所以如果你的代码不需要显式引用 Pig 类,我会检查它是否有错误。您可能留下了一些从您的 pig UDF 复制的样板代码。

关于hadoop - 创建 hive UDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20583926/

相关文章:

hadoop - 通过 levenshtein 在 Hive 或 Impala 中加入的有效方法

null - 在 Hive 中处理 NULL 值

regex - 为非结构化数据创建配置单元表

hadoop - 您是否知道hadoop的批处理日志处理工具(替代zohmg)?

java - 预期为BEGIN_OBJECT,但在第1行第6列处为STRING

hadoop - 配置单元 hadoop : selecting data from table getting error

hbase - 如何为hbase创建外部表

java - 从单个 Hive UDF 创建多个列

hadoop - 配置单元中的 IndexOutOfBoundsException 索引

hadoop - Map Reduce中的大数据文件处理