我有以下设置。
现在我需要创建另一个应用程序,该应用程序可以使用AWSSDK(C#)查询Athena并以JSON格式读取数据。
是否可以使用表的输入/输出格式,并通过Athena SDK使用SERDE读取JSON格式的数据?还是我需要实现自定义逻辑以将数据转换回JSON?
答案 0 :(得分:1)
雅典娜基于Presto 0.172版本,因此您可以在Presto文档中找到答案。例如,本章对您有用:
答案 1 :(得分:1)
问题很旧,但可能会帮助尝试将Athena表中的结果导出为不同输出格式的人。通过简单的Athena CTAS(https://docs.aws.amazon.com/athena/latest/ug/create-table-as.html)语句,可以使用AWS CTAS将数据导出为不同的格式(ORC,PARQUET,AVRO,JSON或TEXTFILE)。您还可以指定压缩格式以保存输出数据。
以下示例将在s3上将数据导出为JSON格式。
output_location ='s3://s3_bucket/output.json'
CREATE TABLE output
WITH (
format = 'JSON',
external_location = output_location) AS SELECT * FROM target_table
这种方法的缺点:输出始终被压缩。
答案 2 :(得分:-1)
所以我从雅典娜那里得到了这样的东西:
SELECT output FROM "test"."prod" limit 10;
{score=41, avg_time_solving={double=17439.333333333332, long=null}
如果我在此字段上使用强制类型转换,则会得到:
SELECT CAST(output AS JSON) FROM "test"."prod" limit 10;
[51, [8205.57142857143,null], [null,5159], 7, [0.8571428571428571,null], null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null]