《Spark机器学习进阶实战》——2.2.3 数据准备

举报
华章计算机 发表于 2019/05/31 01:08:58 2019/05/31
【摘要】 本书摘自《Spark机器学习进阶实战》——书中的第2章,第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可以方便地了解数据的组成、结构和数据类型。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。