Sql Athena查询JSON字段存储为字符串
我有一张雅典娜的桌子,上面有一块地Sql Athena查询JSON字段存储为字符串,sql,amazon-web-services,amazon-athena,Sql,Amazon Web Services,Amazon Athena,我有一张雅典娜的桌子,上面有一块地 fields (string) 数据看起来像 {"field_1":"value_1","field_2":"value_2"} {"field_1":"value_3","field_2":"value_4"} ... 我想提出以下问题: select "fields".&qu
fields (string)
数据看起来像
{"field_1":"value_1","field_2":"value_2"}
{"field_1":"value_3","field_2":"value_4"}
...
我想提出以下问题:
select "fields"."field_1" as field_1 from table_name where field_1 = "something"
我尝试了很多方法,但要么得到一个错误,要么字段_1只有空值。任何帮助都将不胜感激。根据示例数据,字段看起来是JSON。所以我要做的第一件事是使用json_parse来转换它 语法fields.field_1适用于行-列-但是,看起来不可能在基于Presto 0.172的Athena中对行强制转换json-请参阅 您可以将其转换为地图,然后通过:[]访问它 例如:
with example as
(
SELECT * FROM (
VALUES
('{"field_1":"value_1","field_2":"value_2"}'),
('{"field_1":"value_3","field_2":"value_4"}')
) AS t (fields)
)
,example_cast as
(
select *
,cast(json_parse(fields) AS map<varchar,varchar>) fields_parsed
from example
)
select *
,fields_parsed['field_1'] fields_field_1
from example_cast;