在查询athena时将结构转换为json

问题描述 投票:4回答:1

我有一个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   |
sql json struct amazon-athena
1个回答
1
投票

您可以使用parent_field.child_field表示法直接引用嵌套字段。尝试:

SELECT
  my_field,
  my_field.a,
  my_field.b,
  my_field.c.d,
  my_field.c.e
FROM 
  my_table
© www.soinside.com 2019 - 2024. All rights reserved.