




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据清洗新工科建设之路·数据科学与大数据系列样本数据处理第四章01数据清洗概述Kettle里没有单一的数据清洗步骤,很多数据清洗工作都需要结合多个步骤来组合完成。数据清洗工作从抽取数据时就开始,在很多输入步骤中都可以设置特定的数据格式,按照特定的数据格式来读取数据。示例代码是从一张studentinfo表中抽取studentid和score两个字段,并按score字段降序排列得到的。Kettle常用的数据清洗步骤注意:首先,如果SQL语句太过复杂,就会导致以后的维护工作非常困难;其次,如果数据在进入Kettle时已经做过清理,那么ETL便不能提供数据审计的功能。因此,是需要原样读入数据,还是利用SQL在数据抽取时清理,需要用户在效率和可维护性之间进行平衡。这里主要介绍Kettle在转换(Transform)目录下提供的数据清洗步骤。这是一个功能丰富的步骤,它提供了很多预定义的函数来处理输入字段,并且随着版本的更新还在不断增加。计算器从字面上看很简单,只有了解到这个步骤可以支持正则表达式时,才会真正感受到它的强大之处。字符串替换Kettle常用的数据清洗步骤该步骤提供了很多常规的字符操作,如大小写转换,字符填充、移除空白字符等。字段选择剪切字符串。字符串剪切这3个步骤通过使用分隔符来拆分、合并字段。拆分字段、合并字段和拆分字段成多行Kettle常用的数据清洗步骤该步骤使用一个标准的值来替换字段里的其他值。值映射该步骤可以对字段进行选择、删除、重命名等操作,还可以更改字段的数据类型、长度和精度等元数据。字段选择这两个步骤主要通过指定字段来清除重复记录。去除重复记录和去除重复记录Kettle常用的数据清洗步骤字符串清理“DataGrid”的元数据如图4-1所示。字符串清理另外输入一组示例数据,内容如图4-2所示。字符串清理“Stringoperations”的具体设置如图4-3所示。字符串清理清理步骤设置完毕。为了展示结果,我们使用一个“MicrosoftExcelOutput”步骤输出清理后的结果。"MicrosoftExcelOutput”步骤的设置方法前面已经讲过,这里不再赘述。这时整个转换流程如图4-4所示。字符串清理执行string_op转换,打开输出文件,可以看到如图4-5所示的结果。字符串清理这时将这个步骤添加到“Stringoperations”步骤和“MicrosoftExcelOutput”步骤之间,string_op转换的流程变成如图4-7所示的流程。字符串清理执行转换并打开输出文件,可以看到如图4-8所示的结果。字符串清理“Stringscut”的具体设置如图4-9所示。字符串清理组合几个步骤后,string_op转换的最终流程如图4-10所示。字符串清理执行上面的转换,系统将得出最终结果,如图4-11所示。关于字段清理,这里简单介绍4个常用步骤:“拆分字段成多行(Splitfiledtorows)"、“拆分字段(SplitFields)”、“合并字段(ConcatFields)”和“字段选择(Selectvalues)"。字段清理字段清理“Splitfiledtorows”步骤新建一个转换,命名为field_op,同样使用“DataGrid”步骤作为输入,设计一个表格,记录编号、省份、城市,如图4-12所示。字段清理表格设计完成后,输入一组示例数据,如图4-13所示。字段清理这里我们就用这个正则表达式来作为分隔符“Splitfieldtorows"的具体设置如图4-14所示。字段清理同样选择输出一个Excel文件,整个转换的流程如图4-15所示。字段清理这时查看结果,可以发现数据增加了一个字段“城市New”,具体结果如图4-16所示。字段清理“SplitFields”步骤和“ConcatFields”步骤具体设置如图4-17所示。字段清理对该步骤的结果同样用Excel输出。field_op_1转换的流程如图4-18所示。字段清理执行转换,“SplitFields”的输出结果如图4-19所示。字段清理具体设置如图4-20所示。字段清理同样选择Excel作为输出步骤,field_op_1转换的流程如图4-21所示。字段清理执行转换,“ConcatFields”的具体结果如图4-22所示。字段清理“Selectvalues”步骤元数据设置成如图4-23所示的结构。字段清理对“DataGrid”步骤输入一组示例数据,如图4-24所示。字段清理我们可以在该页面上添加“Age”字段将其删除,具体设置如图4-25所示。字段清理单击“Quick
launch”按钮,这里会看到如图4-26所示的结果。字段清理具体设置如图4-27所示。字段清理预览该步骤,可以查看到如图4-28所示的结果。字段清理具体设置如图4-29所示。字段清理预览该步骤,可以查看到如图4-30所示的最终清理结果。使用参照表清理数据在某些场合,我们无法直接从当前表中识别出数据的错误。在某些场合,我们无法直接从当前表中识别出数据的错误。例如,客户信息表包含客户的邮编、城市及其他信息,但录入时可能出现城市与邮编不一致的情况,这时就需要访问外部的一些参照数据来检查和修正这些错误。外部的参照数据里的信息是完整的、标准的,也称这些参照数据为主数据。外部的这些主数据从何而来?主数据一般都有相应的公司对其进行销售和维护,当然也有极少的主数据是可以免费下载的。使用参照表校验数据的准确性参照表的用途很多,其中最常见的用法就是用参照表来做查询和校验。使用参照表使数据一致不同的系统对性别的记录可能都不一样,有的系统用M表示男,用F表示女;有的系统用数字0表示男,用1表示女,或者用1表示男,用2表示女;而有的系统则用Male和Female分别表示男和女。对未知性别的表示也不尽相同,用Unknown、0、NULL、U等都可以表示。使用参照表清理数据在Kettle7.1中,校验目录下有以下4个步骤。(1)数据校验(DataValidator)。(2)信用卡校验(CreditCardValidator)。(3)电子邮箱校验(MailValidator)。(4)XML文件校验(XMLValidator)。后3个步骤都是功能相对“单一”的步骤。所谓单一,并不是指功能简单,而是指针对性很强。数据校验可以给一列设置多个约束:有的列可能需要多个约束,该步骤不会限制在同一列上设置几个约束。错误合并:将一行数据里的所有错误通过分隔符连接,合并成一个字符串,保存到错误描述字段中。校验数据类型:当输入的是日期类型的数据或者字符串格式的数值时非常有用,可以设置掩码,找到非法数据。约束条件参数化:几乎所有的约束条件都可以参数化。正则表达式:支持功能强大且灵活的正则匹配。数据校验02数据排重现实世界中的一个实体,理论上在数据库或者数据仓库中应该只有一条与之对应的记录。很多原因(如数据录入出错、数据不完整、数据缩写,以及多个数据集成过程中不同系统对数据的表示不尽相同)会导致集成后同一实体对应多条记录。在数据清洗的过程中,重复记录的检测与清除是一项非常重要的工作。如何识别重复数据重复数据分为两类,一类是完全重复数据,另一类是不完全重复数据。完全重复数据很好理解,就是两个数据行的数据完全一致,这类重复数据很好辨别,也很容易清除。对于完全重复数据,一个最简单的方式就是对数据集排序,然后通过比较相邻记录进行合并,Kettle的“Sortrows(记录排序)”步骤可以用于排序。Kettle有两个去除重复记录的步骤“Uniquerows(去除重复记录)”和“Uniquerows(HashSet)(去除重复记录(哈希值))"。前一个步骤只能针对有序记录去重,后一个步骤不需要。如何识别重复数据对于不完全重复数据,检查可能的重复记录需要保证有充足的计算能力,因为检查一条记录就需要遍历整个数据集,也就是说对整个数据集的检查需要在所有记录之间进行两两匹配,其计算复杂度为O(n²)。对可能重复记录的检测需要使用模糊匹配的逻辑,它可以计算字符串的相似度。首先通过模糊匹配找出疑似重复的数据,然后结合其他参考字段做数据排重。相同点“Redirectduplicaterow":选中该选项后,需要对该步骤进行错误处理,否则一旦有重复记录,系统将会以出错处理。相同点“Fieldstocompare":设置哪些字段参与比较。若留空,则表示整条记录参与比较。去除完全重复数据选项只在“Uniquerows(HashSet)”步骤中有设置,选中该选项后,会附加比较存储在内存中的记录值,这样可以防止哈希碰撞冲突。“Compareusingstoredrowvalues?”步骤会将所有记录的比较字段值存储在内存中。“Uniquerows(HashSet)”选项只在“Uniquerows”步骤中有设置,选中该选项后,该步骤将对重复记录计数,并根据“Counterfield”设置的字段名输出到下一个步骤。“Addcountertooutput”去除完全重复数据选项只在“Uniquerows”步骤中有设置,在添加要比较的字段后面,可以设置“Ignorecase”为“Y”状态,从而在比较该字段时忽略大小写。“Ignorecase”步骤要求输入的数据是事先排好序的,因为它是通过比较相邻记录的值来判断是否重复的;"Uniquerows(HashSet)”步骤对记录的顺序没有要求,它可以在内存中操作。“Uniquerows”去除完全重复数据去除不完全重复数据“模糊匹配”步骤的设置主要分如下两个方面。(1)常规设置:这里要设置一个查询数据流的步骤(Lookupstep)和字段(Lookupfield),以及一个主数据流的字段(Mainstreamfield),此外需要配置模糊匹配时所使用的算法(Algorithm)。(2)字段设置:这里设置的字段都是针对输出的,可以设置匹配字段名(Matchfield)、相似度字段名(Valuefield),以及匹配记录的其他相关字段。03使用脚本组件进行数据清洗使用JavaScript代码组件清理数据现有一份图书馆的借阅信息(见图4-57)。使用JavaScript代码组件清理数据然后根据借阅的周数设定状态,并在该步骤下方的字段栏里填上返回的状态字段及类型。该步骤的具体设置如图4-58所示。使用JavaScript代码组件清理数据通过预览“ModifiedJavaScriptValue”步骤,不难看到该转换的输出结果,如图4-59所示。虽然“Replaeeinstring(字符串替换)”“DataValidator(数据校验)”等步骤都用到了正则表达式,但正则表达式真正强大的功能却是通过“Regex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童画狐狸课件
- 昆山登云科技职业学院《人体形态与结构》2023-2024学年第二学期期末试卷
- 燕山大学《生物企业环保与安全管理》2023-2024学年第二学期期末试卷
- 2025届名校学术联盟高三下学期模拟冲刺物理试题及答案
- 收银营销管理办法解读
- 幼儿园社会安全公开课
- 小班美术教师培训
- 培训述职报告
- 初中校长培训教师校本培训
- 拼音知识大闯关
- 手工滴胶课件完整版
- (现行版)江苏省建筑与装饰工程计价定额说明及计算规则
- 汽轮发电机组轴系扭振分析与保护方式研究
- 初三数学竞赛试题及答案解析
- JJF(纺织)095-2020土工布磨损试验机校准规范
- JJG 384-2002光谱辐射照度标准灯
- 报销单填写模板
- 小学劳动 包饺子课件
- 火力发电的基本知识课件
- 教师职业道德第二节-爱岗敬业资料课件
- 临检基础知识讲解:测定血糖的临床意义
评论
0/150
提交评论