【问题标题】:Creating hive UDF创建配置单元 UDF
【发布时间】:2013-12-14 13:32:39
【问题描述】:

嗨,朋友们,我是 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

请有人帮助我,因为我是蜂巢新手。谁能告诉我要遵循的步骤

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    您的 hive UDF 以某种方式引用 Pig 类,该类可能位于 pig.jar 文件中,而在 Hive 环境中不一定位于类路径中。

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

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

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

    【讨论】:

      【解决方案2】:

      似乎您正在创建的 UDF 的 java 代码是指 PIG 库。在创建 Hive UDF 时,您应该包含 hive 库。我在以下链接中提到了整个程序 http://lets-do-something-big.blogspot.in/2014/02/hive-udf-example.html 。如果您仍然遇到问题,请告诉我

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-19
        相关资源
        最近更新 更多