kettle开发-数据清洗之字符串替换

简介: kettle开发-数据清洗之字符串替换

前言:


       昨天讲到了通过case/switch组件来进行分流,来区分日期里面三大类的数据,包括正常显示的2023/7/12 2:59:58的数据,一种是包含中文上午的数据,一种是包含中文下午的数据。但是我们发现这样直接存进去的数据还是包含了很多带有਍和汉字上午、下午和年份不完整只有23这种异常数据。很显然这些异常数据会导致我们数据分析的时无法处理。因此我们必须对这些异常数据进行清洗让其恢复正常。


一、字符串替换


1、功能简介


如上图所示,字符串替换可以将字符串A变成字符串B,因此我们可以通过字符串替换的功能可以清除类似包含"਍"的数据等等。


2、小案例


字符串替换的时候如果我们是简单的讲A替换为B的话,我们只要选择需要替换的输入流字段,不使用正则表达式,搜索里面输入A,使用...替换,输入B即可,设置为空串为否等如下图所示即可。

原始的字符串

替换后的结果


如上图所示,我们成功将字符串 ABaaABb→BBBBBBb,因为我们选了大小写不敏感,因为a也会被替换,因此我们需要根据自己的需要来选择对应的替换数据范围。


二、特殊应用


前面讲到我们需要处理特殊字符਍和汉字等,因此我们需要用到正则表达式。


2.1正则表达式


 如上图所示我们通过正则表达式਍+来匹配包含਍的数据,因此字符串任何位置਍,都会被空值替换掉。类似中文上午 和 下午 我们就可以用正则表达式上午 +   下午 +来匹配对应的字符串然后进行替换。最后的设置效果如下图所示。


2.2特殊处理


在前面我们有说到,我们字符串中的年份不完整,如2023显示的是23因此我们需要将23转换成2023。在这里需要注意的是,我们的小时、分钟、秒都可能出现23因此,在处理23年份的时候,我们需要使用^23来处理,表示只替换23开头的23为2023,因此就不会将小时、分钟、秒也替换为2023了。对应效果如下图所示。

23年份的问题得到了处理,我们还需要类似23.07.14替换为2023/07/14,因此我们此时需要将". "替换为"/"。在这里需要注意的是,我们不能直接.或者/,因为对应都是关键字,我们需要用\.和\/来完成对应的字符串的替换工作。最终效果如下图所示。


三、总结


在应用字符串替换来进行数据清洗时,我们可以用正则表达式来模糊匹配,但是需要注意模糊匹配会不会造成将其他不应该替换的数据被替换了。如替换年份时,将小时、分钟、秒也被替换了。


还有就是当我们发现替换后的字符串不按我们预想的效果来就需要考虑是不是我们用到了关键字,因此我们需要用\关键字来完成对应替换规则。


相关文章
|
3月前
|
数据库连接 数据库
kettle开发篇-流查询
kettle开发篇-流查询
55 0
|
存储 项目管理 Python
数据导入与预处理-第4章-数据获取python读取docx文档(上)
数据导入与预处理-第4章-pandas数据获取docx文档 1.python读取docx文档概述 1.1 从Word文件获取数据 1.2 python-docx库介绍 1. Paragraph类 2. Table类
数据导入与预处理-第4章-数据获取python读取docx文档(上)
|
3月前
|
存储
kettle开发篇-列转行
kettle开发篇-列转行
97 0
|
3月前
kettle开发篇-行转列
kettle开发篇-行转列
43 0
|
4月前
|
数据采集 自然语言处理 搜索推荐
数据清洗【Python文本数据处理】
数据清洗【Python文本数据处理】
|
11月前
|
数据采集 运维 Ubuntu
使用kettle进行数据清洗
使用kettle进行数据清洗
使用kettle进行数据清洗
|
11月前
|
数据采集 存储 Ubuntu
Kettle数据采集和预处理工具的认知和基本应用
Kettle数据采集和预处理工具的认知和基本应用
|
存储 数据采集 文件存储
|
数据挖掘 大数据 索引
数据导入与预处理-第6章-03数据规约
数据导入与预处理-第6章-03数据规约 3 数据规约 3.1 数据规约概述(6.3.1 )
数据导入与预处理-第6章-03数据规约
|
IDE 开发工具 索引
数据导入与预处理-第4章-数据获取python读取docx文档(下)
数据导入与预处理-第4章-pandas数据获取docx文档 1.python读取docx文档概述 1.1 从Word文件获取数据 1.2 python-docx库介绍 1. Paragraph类 2. Table类
数据导入与预处理-第4章-数据获取python读取docx文档(下)