Hive UDTF只有一种实现方式,需要继承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF类,并重写initialize, process, close三个方法。
这三个方法的具体描述为:
接口方法 | 返回类型 | 描述 |
---|---|---|
initialize | StructObjectInspector | 初始化,一般用于检查参数个数和类型,初始化解析器,定义返回值类型 |
process | void | 实现具体的数据处理过程,通过forword()方法把结果返回 |
close | void | 进行清理工作 |
forward | void | 将输出行传递给收集器 |
因为UDTF是将一行数据拆分为多行,所以在处理过程中按照一定规则拆分出的每一行数据,在遍历过程中,会交由forward方法传递给收集器,从而完成多行数据的生成。
现在通过一个案例,来进行UDTF开发实践。
具体要求为:实现个人信息的字符串拆分,拆分为多行,并解析成name、age字段。
案例数据为&#x