我有一个athena表,我没有创建或管理,但可以查询。其中一个字段是结构类型。为了这个例子,让我们假设它看起来像这样:
my_field struct<a:string,
b:string,
c:struct<d:string,e:string>
>
现在,我知道如何查询此结构中的特定字段。但在我的一个查询中,我需要提取完整的结构。所以我只是用:
select my_field from my_table
结果看起来像一个字符串:
{a=aaa, b=bbb, c={d=ddd, e=eee}}
我想将结果作为json字符串:
{"a":"aaa", "b":"bbb","c":{"d":"ddd", "e":"eee"}}
然后这个字符串将由另一个应用程序处理,这就是为什么我需要它以json格式。
我怎样才能做到这一点?
编辑:更好的是,有没有办法以一种扁平化的方式查询结构?所以结果看起来像:
a | b | c.d | c.e |
-------------------------------
aaa | bbb | ddd | eee |
您可以使用parent_field.child_field
表示法直接引用嵌套字段。尝试:
SELECT
my_field,
my_field.a,
my_field.b,
my_field.c.d,
my_field.c.e
FROM
my_table