如何在hive中获取数组中的不同元素

7gcisfzg  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(772)

我有一个表,其中一列是 array<bigint> 每行的动态大小。例子:

1  [100,200] 
          2  [100,300,500,600]
          3  [200,300]

结果应该是与此数组列不同的值

100
200
300
500
600
tv6aics1

tv6aics11#

尝试

select collect_set(a.expld) from (SELECT explode(arr) as expld FROM data) as a
ej83mcc0

ej83mcc02#

你必须使用 explode(<column name>) ,然后应用 distinct 在子查询上,类似于:

select distinct a.conver from (
  select explode(arr) as conver from arraytype2
) as a

然后你可以使用 collect_list 将此转换回 array .

相关问题