对于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 返回值 没有达到预期;