参照表一个常见的用途就是做数据的查询和检验。提供一个输入字段,如果输入字段里的值没有匹配上,就给对应的数据行做一个错误标志。下面使用城市和邮政编码查询做个例子,演示如何使用计算器步骤和查询步骤来判断地址和邮政编码是否匹配。完整的转换如下图:
首先,需要一些输入数据,本例使用了“自定义常量数据”步骤,并添加一些测试数据作为输入,如下图:
第一个清洗步骤就是从邮政编码里提取数字,要使用计算器步骤。在计算器步骤选择“Return only digits from string A”,新增加一个字段保存这些数字,字段名使用像PC4_1这样有业务含义的字段名。然后就需要一个参照表。这里也是用“自定义常量数据”步骤来模拟一个参照表,如下图:
这里设置的默认值的前缀和后缀都是***,这样设置有两个目的:首先,检查数据的时候比较容易找到这些异常数据;其次,查询后在模糊匹配原始输入的城市名时,这个默认值不会和原来的任何城市名有相似度。后面模糊查询的目的主要是为了检查一些拼写或完整性错误。再使用另一个计算器步骤,把City和RefCity作为字段A和字段B,使用Jaro-Winkler匹配算法,把新生成的字段命名为cityscore。此时预览数据,可以看到如下图所示的结果。
首先,需要一些输入数据,本例使用了“自定义常量数据”步骤,并添加一些测试数据作为输入,如下图:
第一个清洗步骤就是从邮政编码里提取数字,要使用计算器步骤。在计算器步骤选择“Return only digits from string A”,新增加一个字段保存这些数字,字段名使用像PC4_1这样有业务含义的字段名。然后就需要一个参照表。这里也是用“自定义常量数据”步骤来模拟一个参照表,如下图:
这里设置的默认值的前缀和后缀都是***,这样设置有两个目的:首先,检查数据的时候比较容易找到这些异常数据;其次,查询后在模糊匹配原始输入的城市名时,这个默认值不会和原来的任何城市名有相似度。后面模糊查询的目的主要是为了检查一些拼写或完整性错误。再使用另一个计算器步骤,把City和RefCity作为字段A和字段B,使用Jaro-Winkler匹配算法,把新生成的字段命名为cityscore。此时预览数据,可以看到如下图所示的结果。