[Presto] Key-Vlue形式でクエリ結果を吐き出してみた話
2267 ワード
Key-Value形式でクエリ結果を吐き出してみた話
SendGrid Projectにおいて、Web APIを導入するなら差込文字をJSONで送らないといけないということで、PrestoでどうやったらKey-Value型でデータが持てるんだろうというのを頑張ってみました。
結論
ものすごく簡単で
select
map(
array['pref_id','pref_name']
, array[cast(id as varchar), name]
)
from
pref
結果は
{"pref_id":"1","pref_name":"北海道"}
{"pref_id":"2","pref_name":"青森県"}
{"pref_id":"3","pref_name":"岩手県"}
{"pref_id":"4","pref_name":"宮城県"}
{"pref_id":"5","pref_name":"秋田県"}
...etc
的な感じでGetできます! すごい。
道具
array[ ]
詳しくは公式ドキュメントを読んでください。
array[x]で [x]
という配列を作れます。
そして、 array[x,y]で [x,y]
。以下同様。
これ、一点だけ注意である配列のすべての要素のデータ型は全部同じようです。
なので [2, 'name']
みたいなのはNGっぽい!
map( array, array )
こちらも公式ドキュメントを読んでもらえれば。
map(array<K>, array<V>) → map
Returns a map created using the given key/value arrays.
だそうです。。。???
ようは、Keyを詰め込んだ array<K>
とValueを詰め込んだ array<V>
を用意してぶち込め! あとは処理しちゃる!
ってことみたいですね。
Author And Source
この問題について([Presto] Key-Vlue形式でクエリ結果を吐き出してみた話), 我々は、より多くの情報をここで見つけました https://qiita.com/s_maeda_fukui/items/3e2c548bb9ec851a4a75著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .