在蜂巢表中添加新列时map <string,string>中元素更改的顺序

时间:2019-03-20 17:35:46

标签: hadoop hive

在阶段表中,“ call_log”字段具有String数据类型的以下数据:

a=1|b=2|c=3|d=4

我们正在加载到Final表中的str_to_map(call_log,"\\|","="),其中“ call_log”字段是地图类型。

当前,Final表中的映射以与阶段中相同的顺序发生,如下所示:

{"a":"1","b":"2","c":3","d":"4"}

将新列添加到Finalmtable后,键值对的序列立即变得混乱,如下所示:

{"b":"2","d":"4","a":"1","c":3"}

虽然数据已经按照正确的顺序加载,但为什么仅仅通过添加新列却使数据变得混乱?有办法避免吗?

由于这个问题,我们计划用新字段创建所有新表,并回填所有旧数据,这是一个非常耗时的过程。 有人可以帮我解决这个问题吗?

0 个答案:

没有答案