【问题标题】:AWS Athena flattened data from nested JSON sourceAWS Athena 将来自嵌套 JSON 源的数据展平
【发布时间】:2017-04-24 19:12:11
【问题描述】:

我想从 Athena 中的嵌套 JSON 创建一个表。 here 描述的解决方案使用 hive Openx-JsonSerDe 等工具尝试在 SQL 语句中镜像 JSON 数据。我只想从 JSON 文件中获取一些字段并创建表。我似乎找不到任何关于如何做到这一点的资源。

例如 JSON文件{"records": [{"a": "data1", "b": "data2", "c": "data3"}]} 我要创建的表只有ab

【问题讨论】:

  • 使用 JSON SerDe 定义所有字段然后只选择您想要的字段有什么问题?

标签: amazon-web-services hive presto amazon-athena


【解决方案1】:

我认为您想要实现的是取消嵌套数组以将一个数组条目转换为一行。

这可以通过正确查询您的数据结构来实现。

表定义:

CREATE external TABLE complex (
   records array<struct<a:string,b:string>>
   )
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://bucket/test1/';

查询:

select record.a,record.b from complex 
cross join UNNEST(complex.records) as t1(record);

【讨论】:

  • 是否可以在创建表时展平结构?并避免在以下查询中使用.s?
猜你喜欢
  • 2023-03-07
  • 2020-09-27
  • 2022-06-21
  • 1970-01-01
  • 2017-10-16
  • 2022-12-17
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
相关资源
最近更新 更多