【问题标题】:How to access nested arrays and JSON in AWS Athena如何在 AWS Athena 中访问嵌套数组和 JSON
【发布时间】:2021-07-03 14:55:59
【问题描述】:

我正在尝试处理来自 Athena 中 s3 日志的一些数据,这些数据具有我无法弄清楚如何使用的复杂类型。

我有一个表格,其中包含以下行:

data
____
"[{\"k1\":\"value1\", \"key2\":\"value2\"...}]"

我想将其视为 (1) 一个数组以提取第一个元素,然后将第一个元素作为它的 JSON。

一切都很混乱,因为数据自然是一个字符串,包含一个数组,包含 json,我什至不知道从哪里开始

【问题讨论】:

    标签: sql json amazon-athena pyathena


    【解决方案1】:

    您可以使用以下 JSON 命令组合:

    SELECT 
         JSON_EXTRACT_SCALAR(
            JSON_EXTRACT_SCALAR('"[{\"k1\":\"value1\", \"key2\":\"value2\"...}]"','$'),
           '$[0].k1'
         )
    

    内部 JSON_EXTRACT_SCALAR 将返回 JSON ARRAY [{"k1":"value1", "key2":"value2"...}],外部将返回相关值 value1

    另一个类似的选项是使用 CAST(JSON :

    SELECT 
         JSON_EXTRACT_SCALAR(
            CAST(JSON '"[{\"k1\":\"value1\", \"key2\":\"value2\"...}]"' as VARCHAR),
           '$[0].k1'
         )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      相关资源
      最近更新 更多