我想在AWS中从Athena获取结果值格式JSON。
当我从Athena中选择时,结果格式就是这样。
{test.value={report_1=test, report_2=normal, report_3=hard}}
有没有办法在不将“=”替换为“:”的情况下获得JSON格式结果?
列格式为
map<string,map<string,string>>
答案 0 :(得分:4)
select mycol
from mytable
;
+--------------------------------------------------------------+
| mycol |
+--------------------------------------------------------------+
| {test.value={report_3=hard, report_2=normal, report_1=test}} |
+--------------------------------------------------------------+
select cast (mycol as json) as json
from mytable
;
+--------------------------------------------------------------------------+
| json |
+--------------------------------------------------------------------------+
| {"test.value":{"report_1":"test","report_2":"normal","report_3":"hard"}} |
+--------------------------------------------------------------------------+
答案 1 :(得分:0)
如果您的输入格式为json(即整行为JSON),则可以创建一个新表,该表以您在拼花,json,orc等几种可能的选项中指定的格式存储雅典娜结果。将查询的所有雅典娜结果存储在具有所需格式的s3存储桶中。
希望这会有所帮助
以下是供参考的文档:https://docs.aws.amazon.com/athena/latest/ug/ctas-examples.html