需要从 HIVE UDF 中的 3 列构建 3 个列表
Posted
技术标签:
【中文标题】需要从 HIVE UDF 中的 3 列构建 3 个列表【英文标题】:need to construct 3 lists from 3 columns in a HIVE UDF 【发布时间】:2014-12-27 14:45:37 【问题描述】:我是蜂巢新手。我在编写 HIVE UDF 时遇到了麻烦,其中我将 3 个参数作为 3 列传递给 UDF。我需要用列值构造 3 个列表。基于此,我将对 3 个列表执行我的逻辑并为每条记录返回一个字符串。
我的代码必须是这样的。
public String evaluate(int column1, int column2, String column3)
ArryList column1List //column1List has to all column1 values
ArryList column2List //column2List has to all column2 values
ArryList column3List //column3List has to all column3 values
有人可以帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:如果我正确解释了您的意图,您可以使用 Hive 的内置函数 collect_list
来执行此操作。例如:
SELECT collect_list(field1) FROM my_table;
这将组装出现在my_table
的field1
列中的所有值的列表。
根据您需要对这些列表执行的操作,您可能会发现将 collect_list
的结果简单地传递到您的 UDF 会更容易(因为它们已经是列表)。
更多文档在这里:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
【讨论】:
以上是关于需要从 HIVE UDF 中的 3 列构建 3 个列表的主要内容,如果未能解决你的问题,请参考以下文章