基于spark的大数据提取校验框架

来源:互联网 发布:软件开发环境 编辑:程序博客网 时间:2024/04/20 20:36

 

在机器学习等大数据使用场景中,数据的准确性是非常重要。机器学习模型构建的再完美,如果训练特征数据或预测的特征数据有问题,其模型结果准确度就无法保证。就如听车品觉老师分享大数据决策时,提到要重视和预防Data broken,数据出现问题给大数据应用将带来灾难性的结果。

从技术角度讲,要保证提取数据的正确性,必须要做校验。要持续保证线上提取的数据流的正确性,人肉的单次或多次数据测试不够的,必须在数据提取代码中加上自动化校验代码,在每个数据处理的每个环节加上校验。而在实际工作中,由于模型实验频繁导致提取的数据变更多、离线分析临时性强等原因,大家更多会将精力放在数据提取的逻辑上,没有太多时间去开发自动化校验代码,这样会引入很大的数据质量的风险。

基于以上背景,针对数据提取中数据校验和错误定位、缺失值填充等通用问题,我开发了基于spark和python语言的数据提取校验框架wind-fe。 wind_fe数据提取框架将特征提取(数据提取)过程中自动化校验、缺失填充、调试、join产出、批量回溯、自动调度运行、自动添加分区表等通用环节抽象复用。基于这个框架,开发者可以用较少的开发成本获取到自动化校验过的特征数据,同时节约其他数据提取通用环节开发成本。该框架在自动化校验环节也保留扩展点,可以在一次数据校验任务中完成扩展校验,校验所需要的额外的资源消耗较少。该框架在我们公司多个项目中使用,并在数据回溯以及线上数据流自动生产,发现了很多上游数据问题,很好避免了错误数据影响模型预测的准确性。

       wind-fe的代码框架如下:

    

       wind-fe支持数据源为空、出现重复数据行、部分数据列数和预期不一致、某个特征列值全一致、多列之间存在和值相同的交叉校验等通用。同时校验模块中保留了校验扩展点,允许自行添加自定义业务数据校验自定义校验函数,通过数据遍历,即可完成所有的校验。同时支持校验失败数据行以及失败原因保存到hdfs上,这样可以方便进行人工定位分析错误数据原因。

 

 

1 0
原创粉丝点击