作成も管理もしなかったアテナテーブルがありますが、クエリは実行できます。フィールドの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 |
ネストされたフィールドは、parent_field.child_field
表記で直接参照できます。試してみてください:
SELECT
my_field,
my_field.a,
my_field.b,
my_field.c.d,
my_field.c.e
FROM
my_table