Hive 可扩展接口学习笔记
Hive提供灵活的接口,以使用户能更灵活地处理数据。可扩展接口分为三种:UDF、UDTF、和UDAF
UDF
UDF是最常用到的接口,用来处理字段并返回一个单一的值。
接口类型:
UDF提供两种接口:
简单API
org.apache.hadoop.hive.ql.exec.UDF
UDF接口可以用来读取并返回初级类型。这里说的初级类型指的是hadoop和hive的可写类型:Text, IntWritable, LongWritable,
DoubleWritable等。复杂API
org.apache.hadoop.hive.ql.udf.generic.GenericUDF
GenericUDF接口可以用来处理内嵌的数据结构,像Map, List和Set.
使用举例(简单API):
某字段由多组数据组成,数据间由逗号分隔,此UDF返回此字段内所有数据之和
package com.dokia.hive.MyUDF; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; public class SumComma extends UDF{ public Text evaluate(final Text s) { if (s == null) return null; String[] nums = s.toString().split(","); long sum =