如何通过Athena查询将JSON数据转换为表格格式?
在Athena中解析DynamoDB导出的JSON并获取表格化结果
你当前的表把整个Item存成了字符串,要得到你想要的表格化结果,有两种简单方法:
方法一:重建表,直接解析嵌套结构
因为你的JSON是DynamoDB导出的格式,每个字段都带类型标识(比如S表示字符串),可以直接定义嵌套结构体来匹配:
CREATE EXTERNAL TABLE financials_parsed_json ( Item struct< author: struct<S: string>, title: struct<S: string>, mytext: struct<S: string> > ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' LOCATION 's3://lambdaoks/AWSDynamoDB/016/data/'
建好表后,直接查询提取字段值:
SELECT Item.author.S AS author, Item.title.S AS title, Item.mytext.S AS mytext FROM financials_parsed_json;
方法二:用现有表,通过JSON函数提取字段
如果不想重建表,直接用Athena的JSON函数解析字符串类型的Item:
SELECT json_extract_scalar(Item, '$.author.S') AS author, json_extract_scalar(Item, '$.title.S') AS title, json_extract_scalar(Item, '$.mytext.S') AS mytext FROM financials_raw_json;
json_extract_scalar会直接提取指定JSON路径对应的字符串值,刚好适配DynamoDB的这种格式。
内容的提问来源于stack exchange,提问作者shantanuo
相关产品推荐
相关产品推荐

