在阶段表中,“ 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"}
虽然数据已经按照正确的顺序加载,但为什么仅仅通过添加新列却使数据变得混乱?有办法避免吗?
由于这个问题,我们计划用新字段创建所有新表,并回填所有旧数据,这是一个非常耗时的过程。 有人可以帮我解决这个问题吗?