如何在AWS中从Athena获取结果格式JSON?

时间:2017-05-23 07:18:40

标签: hive presto amazon-athena

我想在AWS中从Athena获取结果值格式JSON。

当我从Athena中选择时,结果格式就是这样。

{test.value={report_1=test, report_2=normal, report_3=hard}}

有没有办法在不将“=”替换为“:”的情况下获得JSON格式结果?

列格式为

map<string,map<string,string>>

2 个答案:

答案 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