Generic UDF開發測試
阿新 • • 發佈:2018-11-09
對於hive開發udf繼承GenericUDF需要實現三個必要的方法
- initialize方法需要宣告返回值型別
- evaluate實現主要邏輯
- getDisplayString(沒研究明白)
記錄開發測試:
1.在initialize方法中 什麼都不寫直接返回null,其他兩種方法都寫
--報錯:FAILED: RuntimeException typeInfo cannot be null!
2.在initialize中宣告輸入變數型別和輸出變數型別(Hadoop型別)
在initialize方法中返回一個String型別所對應的型別即可
return PrimitiveObjectInspectorFactory.writableStringObjectInspector;
--正常輸出
3.將evaluate方法中的返回值直接返回String型別不進行Text包裝
--Failed with exception java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.ClassCastException: java.lang.String cannot be cast to org.apache.hadoop.io.Text
--結果表明輸出型別必須是Hadoop的型別才可以
4.在getDisplayString方法中返回函式說明
--There is no documentation for function 'parseua'
--使用describe function parseua 返回值 沒有達到預期;