处理 hive udf 中的多行

Posted

技术标签:

【中文标题】处理 hive udf 中的多行【英文标题】:Processing multiple rows in an hive udf 【发布时间】:2017-05-08 09:34:14 【问题描述】:

如何在 hive-udf 中获取多行?我需要在函数内部有一整列name,以便可以将它添加到 UDF 内的 ArrayList 中。以下是列名:

Name
jhon
jone 
mike

我想获取 UDF 内列中的所有名称。

【问题讨论】:

collect_set() 和 collect_list() 返回数组 【参考方案1】:

看起来您正在寻找聚合函数。

首先,检查是否有任何现有的聚合函数可以满足您的需求 - Built-in Aggregate Functions。

如果没有,您必须创建自定义 UDAF,这需要您:

编写自己的求值器和解析器(参见本教程 - Custom UDAF), 编译它们, 将二进制文件添加到 hive 类路径, 使用CREATE FUNCTION (Create Function) 在hive 中注册函数。

【讨论】:

以上是关于处理 hive udf 中的多行的主要内容,如果未能解决你的问题,请参考以下文章

hive udtf 输入一列返回多行多列

BigQuery UDF 内存在多行上超出错误,但在单行上工作正常

Hive的内置函数

将多个表中的多行用于具有标量 UDF 的持久计算列

HIVE 常见函数

Hive入门函数入门