1. 程式人生 > >Generic UDF開發測試

Generic UDF開發測試

對於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 返回值 沒有達到預期;