通过使用组hiveql绑定列值

问题描述

我的虚设数据:

| adv_id | dpa_id | json                                         |
| -------| -------|----------------------------------------------|
| 1      | 21     |{'adv_name':'Tesla','product_name':'Model X'}|
| 1      | 21     |{'adv_name':'Tesla','product_name':'Model Y'}|
| 2      | 22     |{'adv_name':'BMW','product_name':'X5'}       |

问题是我们的蜂房系统最多只能retrive百万行数据。我需要的JSON绑定在一起成一个更大的,每adv_id,dpa_id组合。下面是我想要的输出

adv_id 次> dpa_id 次> JSON 次>
1 21 [{ 'adv_name': '特斯拉', 'PRODUCT_NAME': '模型X'},{ 'adv_name': '特斯拉', 'PRODUCT_NAME': '型号Y'}]
2 22 [{ 'adv_name': 'BMW', 'PRODUCT_NAME': 'X5'}]

的值应该如何粘结在一起?提前致谢。

丹尼

解决方法

您可以通过和collect_list进行分组:

select adv_id,dpa_id,collect_list(json) as json
from table
group by adv_id,dpa_id;