建测试表
create table test_k_v
(k string ,
v double)
row format delimited fields terminated by ',';
插入测试数据
insert overwrite table test_k_v
select 'day',1.3
union all
select 'week',3.8
union all
select 'month',4.2;
测试表为
通过生成map,可以指定转置后的字段。执行语句为
select
k_v['day'] as day,
k_v['week'] as week,
k_v['month'] as month
from
(select str_to_map(concat_ws(',',collect_list(concat(k,':',v)))) k_v
from test_k_v) t ;
执行结果为,第一行为列名: