我有一张类似的桌子
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>>
我先用
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相比,配置单元中的计数要高得多,我想这是因为一个键具有很多值,并且它们正在配置单元中分解为不同的行。有没有一种方法可以使配置单元查询类似于presto查询。