在这种情况下,如何在配置单元中连接多个表的情况下使用横向视图?

lndjwyie  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(499)

我有这张table

table 1
id, array<string>(place_id)
1, [1 ,2]
2, [2, 3]

table 2 (Metadata)
id, some_meta

table 3 (Places)
1, Name1
2, Name2
3, Name3

我想把这些表合并成这样。

id, places, some_meta
1, "Name1, Name2", some_meta
2, "Name2, Name3", some_meta

我现在被困在from子查询中。

FROM
  table1 t1
  JOIN table2 t2 ON t1.id = t2.id

这就是我目前的情况。如何加入 t1.place_idstable3 想知道那个地方的名字?我不太了解Hive。

gopyfrb3

gopyfrb31#

使用 lateral viewexplode 并使用 join .

select t1.id,concat_ws(',',collect_list(t3.places)),t2.some_meta
from (select id,places
      from table1
      lateral view explode(place_id) tbl as places
     ) t1
join t2 on t1.id=t2.id
join t3 on t1.places=t3.id
group by t1.id,t2.some_meta

相关问题