陈默回到自己座位,收到了李涛发来的字段说明文档。他打开快速看了一下,然后深吸一口气,关掉所有不必要的程序,新建了一个项目文件夹,按照自己的习惯建立子文件夹:原始数据、过程文件、清洗规则记录、问题记录、输出数据。
他先不急着处理,而是花了一个多小时,把所有u盘里的文件大致浏览了一遍,记下每个文件的大小、大概行数列数、可能的关联字段。在笔记本上画了一个简单的关系图。然后,他开始尝试整理那些混乱的字段名。对照着天晟之前给过的零星文档(在公共盘某个角落找到的),以及李涛发来的参考说明,他逐一猜测、标注那些意义不明的列名。这个过程很慢,需要不断的搜索、比对、推测。遇到实在不确定的,他在问题记录文件里标红,记下文件名和列名。
下午快下班时,王海又晃了过来,站在他身后,看着他的屏幕。
“怎么样了?有头绪没?”
“正在梳理字段,原始数据比较乱,很多列名需要确认。”陈默头也没回,眼睛盯着屏幕上一行行数据。
“嗯,乱是肯定的。抓大放小,先把能确定的、重要的字段理出来。那些边缘的、实在搞不清的,可以先放放,或者统一归到一个‘其他信息’字段里,别耽误太多时间在细节上。”王海的声音从头顶传来,“关键是快。赵总那边等着看方向。”
“明白。”陈默说。他手指在键盘上停顿了一下,然后继续敲打。他把一个标注为“可能需要业务确认”的字段,移到了“待定-低优先级”的分类下。
“行,你继续。下班前给我个初步进展简报,几句话就行,说说目前进度和预计完成时间。”王海说完,走了。
陈默看了一眼电脑右下角的时间。继续埋头在数据里。
接下来两天,陈默几乎把自己钉在了工位上。除了上厕所和接水,很少离开。他按照清洗规则,编写脚本处理批量问题:统一日期格式,将文本型数字转换为数值型,处理明显的异常值(比如年龄为200岁,金额为负值)。对于缺失值,他根据字段性质,谨慎地选择填充方法,或者标记为缺失,并在记录文件里说明。去重时,他设定了几个关键字段组合作为唯一标识,删除了大量完全重复的记录,但对于部分字段相同、部分字段不同的疑似重复记录,他单独拎出来,做了个待核查清单。
第三天下午,他遇到了一个棘手的问题。在核心的交易流水文件里,有一个关键字段“交易类型编码”,按照天晟给过的一份老旧编码表,应该是几位数字,对应不同的业务类型。但陈默发现,实际数据中混入了大量字母和特殊字符,甚至有些编码在给出的码表里根本不存在。他检查了数据来源,发现这个文件似乎是多个子系统导出的结果合并的,编码规则可能不统一。
他停下脚本,在问题记录里详细描述了这个问题,并截图了异常编码的样本。这已经不是简单的清洗能解决的,需要业务方确认编码规则,或者至少明确哪些编码是有效的,哪些是无效的、需要如何处理。
他整理了一下问题,带着笔记本去找王海。
王海正在小会议室里打电话,门虚掩着。陈默站在门口等了一会儿。听到王海对着电话说:“……李总您放心,我们这边全力推进,初步分析很快就能出来……对,我们很重视,专门抽调了精干力量……明白,保持沟通……”