如何计算Hive中两个数组的交集和联合?

时间:2016-03-22 03:57:53

标签: hadoop hive hiveql

例如,交叉点

select intersect(array("A","B"), array("B","C"))

应该返回

["B"]

和联盟

 select union(array("A","B"), array("B","C"))

应该返回

["A","B","C"]

在Hive中制作这个的最佳方法是什么?我已经检查了hive文档,但找不到任何相关信息来执行此操作。

1 个答案:

答案 0 :(得分:4)

您的问题解决方案就在这里。转到githubLink,很多udfs都是由 klout 创建的。下载,打开JAR并在配置单元中添加JAR。实施例

 CREATE TEMPORARY FUNCTION combine AS 'brickhouse.udf.collect.CombineUDF';
 CREATE TEMPORARY FUNCTION combine_unique AS 'brickhouse.udf.collect.CombineUniqueUDAF';

select combine_unique(combine(array('a','b','c'), array('b','c','d'))) from reqtable;

OK
["d","b","c","a"]