【问题标题】:aws athena convert array<array<string>> to tableaws athena 将 array<array<string>> 转换为表
【发布时间】:2020-12-21 08:41:02
【问题描述】:

我有一个 s3 存储桶,里面有很多包含此内容的文件:

{time:123456, state:{{1,2,3,4},{4,5,6,7}...}

我用Athena读取后,结果是有2列的数据集:第一个是时间int,第二个是array&lt;array&lt;string&gt;&gt;,是否可以用athena sql将此表转换为:

select time, col1,col2,col3,col4
from table

当 col1...4 是数组中列的名称时?

【问题讨论】:

  • 请添加预期结果,这将有助于了解您究竟要选择什么

标签: sql arrays amazon-s3 type-conversion amazon-athena


【解决方案1】:

使用CROSS JOIN UNNEST 取消嵌套上层数组:

select a.time, 
       state_array[1] as col1, 
       state_array[2] as col2,
       state_array[3] as col3,
       state_array[4] as col4
from my_table a
CROSS JOIN UNNEST(state) as t(state_array)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 2019-11-23
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多