《Spark机器学习进阶实战》——2.2.3 数据准备
2.2.3 数据准备
明确目标之后,进一步需要确定数据源,准备数据、统一数据标准,并对数据进行预处理。在这个阶段,需要把各个字表关联起来,形成一张数据宽表。
数据源,确定数据来源,并有效地获取数据。
数据标准,统一定义数据指标的含义,对于数据标准的明确,需要结合数据分析调研的需求以及具体业务场景,定义清晰的数据标准对后面的数据ETL以及建模、分析具有重要意义。
数据预处理,也叫数据ETL,用来描述对原始数据抽取、清洗转换和加载的过程。ETL按照统一的规则集成并提高数据的价值,是将数据从数据源向目标数据仓库(DW)转化的过程。
(1)数据抽取
数据的抽取是从各个不同的数据源抽取数据并存储到操作数据存储(Operational Data Store,ODS)中的过程,在抽取的过程中需要选择不同的抽取方法,尽量提高ETL的运行效率。一般认为,与存放DW的数据库系统相同的数据源直接建立链接,与DW数据库系统不同的数据源采取工具导出、工具导入的方法,对于文件类型的数据源先利用业务人员导入临时数据库中转抽取,对于数据量大的系统采取增量抽取。
(2)数据清洗转换
数据清洗转换包括数据清洗和数据转换两个过程。
数据清洗是指对空数据、缺失数据进行补缺操作,对非法数据进行替换,保证数据的正确性。
数据转换是指对数据进行整合、拆分和变换,数据整合是指通过多表关联,将不同类型数据之间可能存在潜在关联关系的多条数据进行合并,通过数据的整合,丰富数据维度,有利于发现更多有价值的信息。数据拆分是指按一定规则对数据进行拆分,将一条数据拆分为多条。数据变换是指对数据进行行列互换、排序、修改序号、去除重复记录变换操作。
(3)数据加载
数据加载将清洗转换后的数据加载到数据仓库中,数据加载有多种方式,主要包括:时间戳方式、日志表方式、全表对比方式、全表删除再插入方式等,其中时间戳方式、日志表方式、全表对比方式属于增量加载,全表删除再插入方式属于全量加载,实践中建议增量加载。
在实际应用中,单机处理海量数据的ETL变得越来越困难,Spark能够较好地支持海量数据的ETL工作,Spark的应用程序编程接口(Application Programming Interface,API)简单易用,处理大数据时效率很高,并且较好地支持了对各种主流数据库的访问,DataFrame提供了详细的数据结构信息,使得Spark SQL可以方便地了解数据的组成、结构和数据类型。
- 点赞
- 收藏
- 关注作者
评论(0)