У меня есть таблица, как
name string
one_key_value array<struct<key:string,value:array<string>>
two_key_value array<struct<key:string,value:array<string>>
и хотите преобразовать его в
name string
one_key_value map<string,array<string>>
two_key_value map<string,array<string>>
В Presto я использую
SELECT name,
MAP(TRANSFORM(one_key_value, kv -> kv.key), TRANSFORM(one_key_value, kv -> kv.value)) AS one_key_value,
MAP(TRANSFORM(two_key_value, kv -> kv.key), TRANSFORM(two_key_value, kv -> kv.value)) AS two_key_value
FROM table_a;
В улье я использую
SELECT name,
map(k1,v1) AS one_key_value,
map(k2,v2) AS one_key_value
FROM table_a
lateral view inline(one_key_value) t1 as k1,v1
lateral view inline(two_key_value) t2 as k2,v2;
Количество в улье намного выше по сравнению с presto, я думаю, это потому, что один ключ имеет много значений, и они разносятся по разным строкам в улье. Есть ли способ сделать запрос улья похожим на запрос preto?