7

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

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

4

1 回答 1

10

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

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

表定义:

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);
于 2017-04-24T21:53:25.393 回答