【发布时间】:2014-05-26 05:27:35
【问题描述】:
我有一个有四列的表格。
C1 C2 C3 C4
--------------------
x1 y1 z1 d1
x2 y2 z2 d2
现在我想将其转换为具有键值对的地图数据类型并加载到单独的表中。
create table test
(
level map<string,string>
)
row format delimited
COLLECTION ITEMS TERMINATED BY '&'
map keys terminated by '=';
现在我正在使用下面的 sql 来加载数据。
insert overwrite table test
select str_to_map(concat('level1=',c1,'&','level2=',c2,'&','level3=',c3,'&','level4=',c4) from input;
在表上选择查询。
select * from test;
{"level1":"x1","level2":"y1","level3":"z1","level4":"d1=\\"}
{"level1":"x2","level2":"y2","level3":"z2","level4":"d2=\\"}
我不明白为什么我在最后一个值中得到了额外的“=\ \”。
我仔细检查了数据,但问题仍然存在。
你能帮忙吗?
【问题讨论】: