我有一个具有以下模式的配置单元表:
int key1 # this is unique array<int> key2_list
现在,如果记录的key2_list有任何公共元素,我想在这里合并记录,例如,如果记录A有(10,[1,3,5]),记录B有(12,[1,2,4]),我想将其合并为([10,12],[1,2,3,4,5])或([1,2,3,4,5])。如果更容易,输入表可以改为使用以下模式:
int key1 int key2
我更愿意通过Hive或SparkSQL完成此操作。
6rqinv9w1#
对于第二个表定义,可以运行类似于
select collect_list(key1) from yourtable group by key2
或用于第一个表定义
select collect_list(key1) from (select key1, mykey FROM yourtable LATERAL VIEW explode(key2_list) a AS mykey) t group by mykey
1条答案
按热度按时间6rqinv9w1#
对于第二个表定义,可以运行类似于
或用于第一个表定义