AWS雅典娜从嵌套的JSON源平坦化数据

问题描述:

我想从雅典娜的嵌套JSON创建一个表。解决方案here使用像Hive这样的工具Openx-JsonSerDe尝试镜像SQL语句中的JSON数据。我只想从JSON文件中获取几个字段并创建表。我似乎无法找到如何做到这一点的任何资源。AWS雅典娜从嵌套的JSON源平坦化数据

E.g. JSON文件{"records": [{"a": "data1", "b": "data2", "c": "data3"}]} 我想仅仅只创建的表中的列ab

+0

什么是定义使用JSON SERDE的所有字段,然后只选择你想要的领域的问题? –

我认为你正在努力实现的unnesting数组一个数组项转变成一排什么。

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

表定义:

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