使用Athena客户端和命令***GetQueryResultsCommand***检索Athena查询结果(存储在S3桶中的CSV文件中)后,检索的数据按以下方式进行结构化:
{
"NextToken": "string",
"ResultSet": {
"ResultSetMetadata": {
"ColumnInfo": [
{
"CaseSensitive": boolean,
"CatalogName": "string",
"Label": "string",
"Name": "string",
"Nullable": "string",
"Precision": number,
"Scale": number,
"SchemaName": "string",
"TableName": "string",
"Type": "string"
}
]
},
"Rows": [
{
Data: [
{ VarCharValue: 'columnName1' },
{ VarCharValue: 'columnName2' },
{ VarCharValue: 'columnName3' },
{ VarCharValue: 'columnName4' },
{ VarCharValue: 'columnName5' },
{ VarCharValue: 'columnName6' }
]
},
{
Data: [
{ VarCharValue: 'fieldValue1' },
{ VarCharValue: 123.4 },
{ VarCharValue: false },
{ VarCharValue: 12 },
{ VarCharValue: 'fieldValue5' },
{ VarCharValue: 231.1 }
]
}
]
},
"UpdateCount": number
}
其中,在 ColumnInfo 处,存在关于CSV中存在的列的所有信息(名称、类型信息等),并且在 Row 数组中,存在关于行的所有信息:拆分为两个 Data 对象的列和相关值
我的问题是:有没有可能从QueryResultCommand(或其他命令)中获取具有更好结构的数据,其中2 Data 对象已经“合并”,以便更容易地管理行并通过列名获取它们的值?
或者,我是否必须处理ROW数组中的每个元素并创建自己的对象?
1条答案
按热度按时间bq9c1y661#
检查Athena SDK的文档,我们发现它不支持不同格式的返回数据。我已经粘贴了下面的可用参数。我看到的唯一其他方法是使用CLI,它有一个以不同格式返回数据的选项。