在hive中,如何在第一个表中将连接表中的多行合并为单个json数组?

4c8rllxm  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(480)

我有两张table如下:

users table
==========================  
| user_id   name     age |  
|=========================  
|  1        pete      20 |  
|  2        sam       21 |  
|  3        nash      22 |  
==========================

hobbies table
=========================
| user_id   hobby       |
|========================
|  1        football    |
|  1        running     |
|  1        basketball  |
=========================

我想创建一个可以按以下格式返回行的配置单元查询:

{ "user_id":1, "name":"pete", "hobbies":["football", "running", "basketball"] }
mwkjh3gx

mwkjh3gx1#

加入表格并使用 collect_list 将每个用户的爱好放入 array .

select u.user_id,u.name,collect_list(h.hobby) as hobbies
from users u
join hobbies h on u.user_id=h.user_id
group by u.user_id,u.name

使用 collect_set 以获取唯一值,以防重复。

相关问题