AWS Athena从嵌套的JSON源中展平数据

时间:2017-04-24 19:12:11

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

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

E.g。 JSON文件{"records": [{"a": "data1", "b": "data2", "c": "data3"}]} 我想要创建的表格只有a列和b

1 个答案:

答案 0 :(得分:6)

我认为您要实现的目标是将数组转换为一行而不必使用数组。

通过正确查询数据结构,可以实现这一点。

表格定义:

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);