【问题标题】:How to compute the intersections and unions of two arrays in Hive?如何计算 Hive 中两个数组的交集和并集?
【发布时间】:2016-03-22 03:57:53
【问题描述】:

比如路口

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

应该返回

["B"]

和工会

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

应该返回

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

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

【问题讨论】:

  • 你试过select array("A","B") UNION ALL select array("B","C"))吗?
  • Array intersect Hive的可能重复

标签: hadoop hive hiveql


【解决方案1】:

您的问题解决方案就在这里。转到githubLink,有很多 udf 是由 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"]

【讨论】:

猜你喜欢
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2013-04-20
  • 2020-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多