我在 athena 中运行查询,如下所示:
SELECT element_at(col_name,1).entities FROM "db_name"."the_table" limit 10;
我得到了一个嵌套的 json/dict 数组,如下所示:
[{country=US,content=content},{country=DE,content=content},{country=GB,content=content}]
[]
[{country=HK,content=content},{country=IN,content=content},{country=GB,content=content}]
[]
并且我想创建一个查询,如果有任何一个
country=US
,则提取该行。
所以我尝试了:
SELECT * FROM "db_name"."the_table" WHERE any_match(element_at(col_name,1).entities, e-> e.country= 'US') limit 10;
但是这崩溃了,说它不是一行
我想提取国家/地区为美国的行..
还有另一种类型可以这样写在输出中 - 它是
MAP
,所以你可以尝试:
WHERE any_match(element_at(col_name,1).entities, e-> e['country'] = 'US')
或(如果密钥是可选的):
WHERE any_match(element_at(col_name,1).entities, e-> element_at(e, 'country') = 'US')