数据清洗—黑马程序员(学习笔记)

1 完全去重

1.1 打开Kettle工具,创建转换

通过使用Kettle工具,创建一个转换repeat_transform,并添加“CSV文件输入”控件、“唯一行(哈希值)”控件以及Hop跳连接线,具体如图所示。

图1 创建转换

1.2配置CSV文件输入控件

1)双击“CSV文件输入”控件,进入“CSV文件输入”界面。

图2 csv配置

2)单击【浏览】按钮,选择要进行完全去重处理的CSV文件merge.csv;再单击【获取字段】按钮,Kettle会自动检索CSV文件,并对文件中的字段类型、格式、长度、精度等属性进行分析。

图3获取字段

3)单击【预览】按钮,查看CSV文件merge.csv的数据是否加载到CSV文件输入流中。

图4预览

1.3 配置”唯一行(哈希值)”控件

1)双击“唯一行(哈希值)”控件,进入“唯一行(哈希值)”配置界面。

图6 唯一行设置

2)在“用来比较的字段”处,添加要去重的字段,这里可以单击【获取】按钮,获取要去重的字段。

图7 浏览

1.4 运行转换repeat_transform

1)单击转换工作区顶部的运行按钮,运行创建的转换。

图10 运行

1.5 查看merge.csv是否消除完全重复的数据

1)选中“唯一行(哈希值)”控件,单击执行结果窗口的“Preview data”选项卡,查看是否消除CSV文件merge.csv中完全重复的数据。

图11 结果

2 填充缺失值

2.1 创建转换

1)通过使用Kettle工具,创建一个转换fill_missing_value,并添加“文本文件输入”控件、“过滤记录”控件、“空操作(什么也不做)”控件、“替换NULL值”控件、“合并记录”控件、“字段选择”控件以及Hop跳连接线。

2.2 配置文本文件输入控件

2)双击“文本文件输入”控件,进入“文本文件输入”配置界面。

3)单击【浏览】按钮,选择要去除缺失值的文件people_survey.txt;单击【增加】按钮,将要去除缺失值的文件people_survey.txt添加到“文本文件输入”控件中。

 

4)单击“内容”选项卡;清除分隔符处的默认分隔符“;”,并单击【Insert TAB】按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框。

 

5)单击“字段”选项卡;根据文件people_survey.txt文件的内容添加对应的字段名称,并指定数据类型。

 

6)单击【预览记录】按钮,查看文件people_survey.txt的数据是否成功抽取到文本文件输入流中。

 

2.3 配置过滤记录控件

1)双击“过滤记录”控件,进入“过滤记录”配置界面。

 

2)在“条件”处设置过滤的条件,由于从“预览数据”图中可以看出字段userid为000016用户的hours_per_week(即每周工作时间字段)存在缺失值,而它的workclass字段值为Private,因此我们可以将过滤字段设置为workclass、过滤值设置为Private作为过滤条件。在“条件”处设置过滤的条件,由于从“预览数据”图中可以看出字段userid为000016用户的hours_per_week(即每周工作时间字段)存在缺失值,而它的workclass字段值为Private,因此我们可以将过滤字段设置为workclass、过滤值设

 

2.4 配置替换NULL值控件

1)双击“替换NULL值”控件,进入“替换NULL值”配置界面。

 

2)勾选“选择字段”处的复选框,并在“字段”框添加字段为hours_per_week,值替换为44(44是字段为hours_per_week中所有值相加求的均值,这里指用44替换字段hours_per_week中的NULL值)。

 

2.4 合并行(比较)”配置

1)双击“合并记录”控件,进入“合并行(比较)”配置界面。

 

2)在”旧数据源:”下拉框选择“替换NULL值”,“新数据源:”下拉框选择“空操作(什么也不做)2”;在“匹配的关键字:”部分,添加关键字段,即userid。

2.5配置替换NULL值2控件

1)双击“替换NULL值2”控件,进入“替换NULL值”配置界面。

 

2)勾选“选择字段”处的复选框,并在“字段”框添加字段为workclass,值替换为Private(这里用Private替换字段workclass中的NULL值)。

 

2.6 配置字段选择控件

1)双击“字段选择”控件,进入“选择/改名值”配置界面。

 2)在“移除”选项卡处添加要移除的字段名称,这里移除的是字段flagfield。

 

2.7 运行

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值