我有串的兩個數組在蜂巢狀陣列相交蜂巢
{'value1','value2','value3'}
{'value1', 'value2'}
我想不重複的合併數組,結果是:
{'value1','value2','value3'}
我怎麼能在蜂巢做呢?
我有串的兩個數組在蜂巢狀陣列相交蜂巢
{'value1','value2','value3'}
{'value1', 'value2'}
我想不重複的合併數組,結果是:
{'value1','value2','value3'}
我怎麼能在蜂巢做呢?
您將需要一個UDF。 Klout在包裝 brickhouse下有一堆開源的HivUDFS。這裏是github link。他們有一堆UDF完全符合你的目的。 下載,構建並添加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"]
還有「intersect_array」,這得到實際的元件中常見(「B」,「C」) 薩彥,非常感謝傳播有關Brickhouse字!!! 我希望你覺得它有用。 –
感謝您的精彩套餐。它有一些非常棒的功能。我試着用combine_unique。它不接受2個數組。因此,此解決方案。維基需要修改 –
原生溶液可能是因爲:
SELECT id, collect_set(item)
FROM table
LATERAL VIEW explode(list) lTable AS item
GROUP BY id;
與lateralview首先爆炸,並且下一組通過並用collect_set刪除重複。
爲什麼這是用java標記的? –