hive:创建自定义函数 UDF

编写Apache Hive用户自定义函数(UDF)有两个不同的接口,一个非常简单,另一个相对复杂点:
简单API: org.apache.hadoop.hive.ql.exec.UDF
复杂API:  org.apache.hadoop.hive.ql.udf.generic.GenericUDF
如果你的函数读和返回都是基础数据类型(Hadoop&Hive 基本writable类型,如Text,IntWritable,LongWriable,DoubleWritable等等),那么UDF可以胜任
但是,如果你想写一个UDF用来操作内嵌数据结构,如Map,List和Set,那么你要去熟悉GenericUDF这个API

简单UDF API

构建一个UDF只涉及到编写一个类继承实现一个方法(evaluate),以下是示例:
class SimpleUDFExample extends UDF {
  
  public Text evaluate(Text input) {
    if(input == null) return null;
    return new Text("Hello " + input.toString());
  }
}

复杂GenericUDF API

GenericUDF API提供了一种方法去处理那些不是可写类型的对象,例如:struct,map和array类型。这个API需要你亲自去为函数的参数去管理对象存储格式( object inspectors),验证接收的参数的数量与类型。一个

你可能感兴趣的:(hive)