web-dev-qa-db-ja.com

athenaにクエリを実行するときに構造体をjsonに変換する

作成も管理もしなかったアテナテーブルがありますが、クエリは実行できます。フィールドの1つは構造体タイプです。例のために、次のようになっていると仮定しましょう。

my_field struct<a:string,
                b:string,
                c:struct<d:string,e:string>
                >

これで、この構造体内の特定のフィールドをクエリする方法がわかりました。しかし、私のクエリの1つでは、完全な構造体を抽出する必要があります。だから私はただ使う:

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   |
9
amit

ネストされたフィールドは、parent_field.child_field表記で直接参照できます。試してみてください:

SELECT
  my_field,
  my_field.a,
  my_field.b,
  my_field.c.d,
  my_field.c.e
FROM 
  my_table
2
James