1.通过kettle工具,对文件merge.csv进行完全去重。
具体步骤如下所示:
(1)数据准备。
(2)打开Kettle工具,创建转换
打开Kettle工具,创建一个新的转换(可以默认转换1),添加“CSV文件输入”控件,“唯一行(哈希值)”控件,具体如图1.1所示。
图1.1
(3)配置“CSV文件输入”控件
双击“CSV文件输入”控件,进入此控件界面中,首先单击“浏览”按钮,选择要完全去重处理的CSV文件merge.csv;接着单击“获取字段"按钮,Kettle会自动检索CSV文件;然后单击”预览“按钮,查看CSV文件merge.csv的数据是否加载到CSV文件输入流中;最后单击”关闭“-”确定“按钮,完成”CSV文件输入“的配置,具体如图1.2和图1.3所示。
图1.2
图1.3
(4)配置“唯一行(哈希值)”控件
双击“唯一行(哈希值)”控件,进入此控件界面中,首先在“用来比较的字段”处添加要去重的字段;然后单击“确定”按钮,完成“唯一行(哈希值)"控件的配置,具体如图1.4所示。
图1.4
(5)运行转换
查看是否消除CSV文件merge.csv中完全重复的数据(可以选中“唯一行(哈希值)”控件,单击执行结果窗口中的Preview data选项卡查看),具体如图1.5和图1.6所示。
图1.5
图1.6
从图1.6可以看出此步骤实现了CSV文件merge.csv中数据的完全去重,消除了重复的数据。
2.通过kettle工具,对文件people_servey.txt中的缺失值进行填充。
具体步骤如下所示。
(1)打开Kettle工具,创建转换
使用Kettle工具创建转换fill_missing_value,添加“文本文件输入”控件、“过滤记录”控件、空操作(什么也不做)”控件、“替换NULL值”控件、“合并记录”控件、“字段选择”控件,具体如图2.1所示。
图2.1
(2)配置“文本文件输入”控件
双击“文本文件输入”控件,进入此控件界面,首先单击“浏览”按钮,选择要填充缺失值的文件people_survey.txt;接着单击“增加”按钮,将要填充缺失值的文件添加到“文本文件输入”控件中;然后单击“内容”选项卡,清除分隔符处的默认分隔符“;”,单击Insert TAB按钮,在分隔符处插入一个制表符,取消勾选“头部”复选框;然后单击“字段”选项卡,根据文件people_survey.txt的内容添加对应的字段名称,并指定数据类型,注意添加的字段都应选择“不去掉空格”;最后单击“预览记录”按钮,查看数据是否抽取到文本文件输入流中,单击“关闭”-“确定”按钮,完成“文本文件输入”控件配置,具体如图2.2和图2.3所示。
图2.2
图2.3
(3)配置“过滤记录”控件
双击“过滤记录”控件,进入此控件界面,首先在“条件”处设置过滤的条件;然后在“发送true数据给步骤”下拉列表中选择“空操作(什么也不做)”,将workclass字段值为Private的数据放在“空操作”控件中,在“发送false数据步骤”后的下拉列表中选择“空操作(什么也不做)2”,将workclass字段值不为Private的数据放在空操作(什么也不做)2控件中;最后单击“确定”按钮,完成“过滤记录”控件配置,具体如图2.4所示。
图2.4
(4)配置“替换NULL值”控件
双击“替换NULL值”控件,进入此控件界面,首先勾选“选择字段”复选框,并在“字段”框添加字段hours_per_week,值替换为44;然后单击“确定”按钮,完成“替换NULL值”控件的配置,具体如图2.5所示。
图2.5
(5)配置“合并记录”控件
双击“合并记录”控件,进入此控件界面,首先在“旧数据源”下拉列表中选择“替换NULL值”;然后在“新数据源”后的下拉列表中选择“空操作(什么也不做)2,在“匹配的关键字”部分添加关键字,即userid;最后单击“确定”按钮,完成“合并记录”控件配置,具体如图2.6所示。
图2.6
(6)配置“替换NULL值2”控件
双击“替换NULL值2”控件,进入此控件界面,首先勾选“选择字段”复选框,并在“字段”框添加字段workclass,值替换为Private;然后单击“确定”按钮,完成“替换NULL值2”控件的配置,具体如图2.7所示。
图2.7
(7)配置“字段选择”控件
双击“字段选择”控件,进入此控件界面,首先在“移除”选项卡界面中添加要移除的字段名称,这里要移除的字段是flagfield;然后单击“确定”按钮,完成“字段选择”控件的配置,具体如图2.8所示。
图2.8
(8)运行转换
查看是否填充了文件people_survey.txt中的缺失值(可以选中“字段选择”控件,单击执行结果窗口中的Preview data选项卡查看),具体如图2.9所示。
图2.9
从图2.9可以看出文件people_survey.txt中不存在缺失值数据了,说明此步骤实现了缺失值的填充。