2013-12-14 116 views
1

嗨朋友我是Hive的新手。我想創建一個UDF在蜂巢稱爲ConvertDateFormatUDF 我收到以下錯誤,創建臨時函數:創建配置單元UDF

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

新增/home/cloudera/date.jar到類路徑 添加的資源:/首頁/ 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 

請有人幫助我,因爲我是新的配置單元。有人可以告訴我要遵循的步驟

回答

1

您的配置單元UDF在某種程度上指的是Pig類,它可能位於pig.jar文件中,該文件不一定位於Hive環境中的類路徑中。

可以使用添加jar來添加外部罐子,就像您自己的用戶創建的罐子一樣。例如,

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

我不知道你的UDF正在試圖做的,但「ConvertDateFormat」聽起來像是一個非常簡單的方法,所以如果你的代碼並不需要明確引用豬類,我會檢查它的錯誤。也許你可能留下了一些從你的豬UDF中複製的樣板代碼。