如何根据 Athena (Presto) 中的列值将一行分成多行?

How to break a row into multiple rows based on a column value in Athena (Presto)?

我有一个 Athena table,它有一列包含值数组。我想从一行创建多行,以便可以将数组的列更改为仅包含 1 个值。

例如:

Name   Id   PhoneNumber
Josh   123  [1236348475,5323794875]

看起来像:

Name   Id   PhoneNumber
Josh   123  1236348475
Josh   123  5323794875

如何编写查询来实现此目的?

我认为 unnest() 可以满足您的要求:

select t.name, t.id, u.phonenumber
from t cross join
     unnest(t.phonenumber) u(phonenumber);