我在蜂巢中有两个字符串数数,例如
{'value1','value2','value3'}
{'value1', 'value2'}
我想合并无重复的数组,结果:
{'value1','value2','value3'}
我如何在Hive中进行?
本机解决方案可能是:
SELECT id, collect_set(item)
FROM table
LATERAL VIEW explode(list) lTable AS item
GROUP BY id;
首先用横向观看爆炸,然后通过collect_set删除重复。
您将需要一个UDF。Klout包裹有一堆Opensource Hivudfs砖房。这是GitHub链接。他们有一堆UDF,完全可以满足您的目的。下载,构建并添加罐子。这是一个示例
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"]