例如,交叉点
select intersect(array("A","B"), array("B","C"))
应该返回
["B"]
和联盟
select union(array("A","B"), array("B","C"))
应该返回
["A","B","C"]
在Hive中制作这个的最佳方法是什么?我已经检查了hive文档,但找不到任何相关信息来执行此操作。
答案 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"]