数据的清洗与检验

一.不完全去重

1.打开kettle工具,创建转换
在这里插入图片描述
2.配置“文本文件输入”控件
(1)双击“文本文件输入”控件,进入“文本文件输入”界面,单击“浏览”按钮,选择要去重的文件people.txt,单击“增加”按钮,将要去重的文件people.txt添加到转换part_repeat_transform,如下图所示:
在这里插入图片描述
(2)单击“内容”选项卡,切换到“内容”选项卡界面,清除分隔符处的默认分隔符“;”,并单击Insert TAB按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框,若不取消,则在进行数据抽取操作时会排除文件第一行的数据。“内容”选项卡的配置如下图所示:
在这里插入图片描述
(3)单击“字段”选项卡,切换到“字段”选项卡界面,根据文件people.txt的内容添加对应的字段名称,并指定数据类型,这里需要注意的是,制表符可看作是由多个空格组成,因此在“去除空字符串方式”列时,所添加的字段都应选择“不去掉空格”,否则在抽取数据操作时,会把制表符当作空格去除,而不能把制表符作为分隔符实现文本文件内容的分割。“字段”选项卡配置如下图所示:
在这里插入图片描述
(4)单击“预览记录”按钮,查看文件people.txt的数据是否成功抽取到文本文件输入流中,如下图所示:
在这里插入图片描述
(5)从图中可以看出,文件people.txt的数据已经成功抽取到文本文件输入流中,单击“关闭”->“确定”按钮,完成“文本文件输入”控件的配置。
3.配置“唯一行(哈希值)”控件
双击“唯一行(哈希值)”控件,进入“唯一行(哈希值)”界面,在“用来比较的字段”处添加要比较去重的字段,即Name、UserLevel、Phone字段,再单击“确定”按钮,完成“唯一行(哈希值)”控件的配置,如下图所示:
在这里插入图片描述
4.运行转换part_repeat_transform
(1)单击转换工作区顶部的运行按钮,运行创建的转换part_repeat_transform,实现文件people.txt中数据的不完全重复处理,如下图所示:
在这里插入图片描述
(2)从图中执行结果窗口的“步骤度量”选项卡可以看出,“文本文件输入”控件输入11条数据并写入该控件中;“唯一行(哈希值)”控件读取“文本文件输入”控件中的11条数据,其中写入该控件9条数据,拒绝2条数据。也就是说,文件people.txt中有2条数据与其他数据是不完全重复的。
(3)单击“唯一行(哈希值)”控件,再单击执行结果窗口的Preview data选项卡,查看是否消除文件people.txt中不完全重复的数据,如下图所示:
在这里插入图片描述
(4)从图中可以看出,文件people.txt中没有重复的数据,说明通过Kettle工具实现了消除不完全重复数据的功能。
(5)需要注意,在进行不完全重复数据去重时需要合理选择字段,否则有可能造成数据丢失的情况。上述的不完全去重例子中,如果只选择字段Name和字段UserLevel,容易造成源文件people.txt中第2条数据和第7条数据丢失。

二.去除缺失值

1.打开kettle工具,创建转换
使用kettle工具创建转换delete_missing_value,并添加“文本文件输入”控件、“字段选择”控件、“过滤记录”控件、“Excel输出”控件、“空操作(什么也不做)”控件以及Hop跳连接线,如下图所示:
在这里插入图片描述
2.配置“文本文件输入”控件
(1)双击“文本文件输入”控件,进入“文本文件输入”界面,单击“浏览”按钮,选择要去除缺失值 的文件revenue.txt,单击“增加”按钮,将要去除缺失值的文件revenue.txt添加到“文本文件输入”控件中,如下图所示:
在这里插入图片描述
(2)单击“内容”选项卡,切换到“内容”选项卡界面,清除分隔符处的默认分隔符“;”,单击Insert TAB按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框,若不取消,在进行数据抽取操作时会排除文件第一行的数据。“内容”选项卡的配置如下图所示:
在这里插入图片描述
(3)单击“字段”选项卡,切换到“字段”选项卡界面,根据文件revenue.txt的内容添加对应的字段名称,并指定数据类型。需要注意,在“去除字符串方式”列时,所添加的字段都选择“不去掉空格”。如下图所示:
在这里插入图片描述
(4)预览记录如下图所示:
在这里插入图片描述
3.配置“字段选择”控件
(1)在“字段选择”控件中单击“选择和修改”选项卡,在“字段名称”处手动添加文本文件输入控件输出的所有数据字段,如下图所示:
在这里插入图片描述
(2)在“移除”选项卡中添加要移除的字段名称,这里移除的是Sex字段,如下图所示:
在这里插入图片描述
4.配置“过滤记录”控件
(1)在“条件”处设置过滤条件,(这里是过滤Name、Pay和Area字段中的缺失值)。单击左边的field框,弹出“字段”对话框,选择要过滤的字段Name,如下图所示:
在这里插入图片描述
(2)单击“=”框,弹出“函数”对话框,选择过滤条件(这里选择IS NULL),如下图所示:
在这里插入图片描述
(3)单击符号“+”增加过滤条件,如下图所示:
在这里插入图片描述
(4)单击AND,弹出“操作符:”对话框,选择操作符(这里选择OR),如下图所示:
在这里插入图片描述
(5)单击“null=[ ]”,添加过滤字段,如下图所示:
在这里插入图片描述
(6)单击左边的field框,弹出“字段”对话框,选择要过滤字段Pay;单击“=”框,弹出“函数”框,选择过滤条件(这里选择的是IS NULL)。如下图所示:
在这里插入图片描述
(7)单击“+”增加过滤条件,如下图所示:
在这里插入图片描述
(8)单击AND,弹出“操作符:”框,选择操作符(这里选择的是OR),如下图所示:
在这里插入图片描述
(9)单击“null=[ ]”,添加过滤字段,如下图所示:
在这里插入图片描述
(10)单击field框,弹出“字段”框,选择要过滤的字段Area;单击“=”框,选择过滤条件(这里选择的是IS NULL),如下图所示:
在这里插入图片描述
(11)连续单击两次“确定”按钮,可以查看设置的过滤条件,如下图所示:
在这里插入图片描述
(12)在”发送trueshuju给步骤:“选择”空操作,将包含缺失值的行数据放在”空操作“控件中;在“发送false数据给步骤:”选择“Excel输出”,将没有缺失值的行数据输出到Excel文件中,如下图所示:
在这里插入图片描述
5.配置“Excel输出”控件
单击“浏览”按钮,选择要输出的文件路径,如下图所示:
在这里插入图片描述
6.运行转换“delete_missing_value”
在这里插入图片描述
从执行结果窗口的“步骤度量”选项卡可以看出,“文本文件输入”控件输入11条数据并写入该控件;“字段选择”控件读取“文本文件输入”控件的11条数据并写入该控件;“过滤记录”控件读取“字段选择”控件的11条数据并写入该控件;通过条件过滤操作使“空操作”控件读取并写入1条数据,“Excel输出”控件读取并写入10条数据,最终输出。
7.查看文件file.xlsx
在这里插入图片描述
从图中可以看出,文件中的数据没有缺失值,说明成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值