Amazon web services AWS Athena:通过带有数组的结构的属性进行查询

Amazon web services AWS Athena:通过带有数组的结构的属性进行查询,amazon-web-services,amazon-athena,aws-glue-data-catalog,Amazon Web Services,Amazon Athena,Aws Glue Data Catalog,我使用aws glue对数据进行了爬网,以从s3文件夹导入json数据,该文件夹包含根括号是如下数组的数据: [{id: '1', name: 'rick'},{id: '2', name: 'morty'}] array<struct<expand:string,id:string,name:string>> 这最终会产生如下模式: [{id: '1', name: 'rick'},{id: '2', name: 'morty'}] array<struct

我使用aws glue对数据进行了爬网,以从s3文件夹导入json数据,该文件夹包含根括号是如下数组的数据:

[{id: '1', name: 'rick'},{id: '2', name: 'morty'}]
array<struct<expand:string,id:string,name:string>>
这最终会产生如下模式:

[{id: '1', name: 'rick'},{id: '2', name: 'morty'}]
array<struct<expand:string,id:string,name:string>>
我得到以下错误:

SYNTAX_ERROR: Column 'name' cannot be resolved

也许有一种方法可以设置Glue crawler,只在数组中添加元素并避免嵌套在一起?

为了查询数组中元素的字段,您需要先取消对其的嵌套。假设结构数组对应于列成员,则需要执行以下操作

选择 * 从…起 人们用水桶, 不感兴趣的成员 哪里 member.name='rick' 注意,您需要使用单引号而不是双引号


以下是AWS Athena中处理数组的官方AWS文档:

为了查询数组中元素的字段,您需要先取消对它的测试。假设结构数组对应于列成员,则需要执行以下操作

选择 * 从…起 人们用水桶, 不感兴趣的成员 哪里 member.name='rick' 注意,您需要使用单引号而不是双引号

以下是AWS Athena中处理阵列的官方AWS文档: