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

kettle mongodb input 替换日期 kettle替换null值组件_数据

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

kettle mongodb input 替换日期 kettle替换null值组件_etl_02

 3.单击“内容”选项卡;在清除分隔符处的默认分隔符“;”,单击【Insert TAB】按钮,在分隔符处插入一个制表符;取消勾选“头部”复选框,若不取消,在进行数据抽取操作时会排除文件第一行的数据。

kettle mongodb input 替换日期 kettle替换null值组件_控件_03

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

kettle mongodb input 替换日期 kettle替换null值组件_字段_04

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

kettle mongodb input 替换日期 kettle替换null值组件_字段_05

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

kettle mongodb input 替换日期 kettle替换null值组件_etl_06

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

kettle mongodb input 替换日期 kettle替换null值组件_etl_07

kettle mongodb input 替换日期 kettle替换null值组件_数据_08

 8.在“发送true数据给步骤:”下拉框中选择“空操作”,将workclass字段值为Private的数据放在“空操作”控件中;在“发送false数据给步骤:”下拉框中选择“空操作(什么也不做)2”,将workclass字段值不为Private的数据放在“空操作(什么也不做)2”控件中。

kettle mongodb input 替换日期 kettle替换null值组件_数据_09

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

kettle mongodb input 替换日期 kettle替换null值组件_字段_10

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

kettle mongodb input 替换日期 kettle替换null值组件_数据_11

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

kettle mongodb input 替换日期 kettle替换null值组件_etl_12

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

 

kettle mongodb input 替换日期 kettle替换null值组件_控件_13

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

kettle mongodb input 替换日期 kettle替换null值组件_etl_14

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

 

kettle mongodb input 替换日期 kettle替换null值组件_控件_15

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

kettle mongodb input 替换日期 kettle替换null值组件_etl_16

 16.单击转换工作区顶部的     按钮,运行创建的fill_missing_value转换

kettle mongodb input 替换日期 kettle替换null值组件_etl_17