java - 需要从HIVE UDF的3列构造3个列表

标签 java hadoop hive

我是新来的。我在编写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


 }

有人可以帮我这个忙吗?

最佳答案

如果我正确解释了您的意图,则可以使用Hive的内置函数collect_list做到这一点。例如:

SELECT collect_list(field1) FROM my_table;

这将组装field1my_table列中出现的所有值的列表。

根据您对这些列表的需要,您可能会发现将collect_list的结果简单地传递到UDF会更容易(因为它们已经是列表了)。

此处有更多文档:

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

关于java - 需要从HIVE UDF的3列构造3个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27668322/

相关文章:

java - 具有实例变量的通用内部类,该实例变量是另一个通用内部类的对象

java - java中的循环处理

java 清除内部内存缓存

hadoop - 级联的笛卡尔积

bash - 使用 unix grep 指定时间范围

java - ActiveMQ 和 CachingConnectionFactory 的自动重新连接问题

hadoop - 从谷歌云存储直接下载文件到 HDFS 和 Hive 表

mysql - 使用sqoop增量更新更新Hive表

mysql - 编译语句 : FAILED: SemanticException [Error 10036]: Duplicate column name: p_id 时出错

hadoop - Radoop:java.net.ConnectException:连接被拒绝:connect