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

前言:

        昨天讲到了通过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,因此我们此时需要将". "替换为"/"。在这里需要注意的是,我们不能直接.或者/,因为对应都是关键字,我们需要用\.\/来完成对应的字符串的替换工作。最终效果如下图所示。

 三、总结

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

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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 Kettle 中,可以使用 "Replace in string" 步骤来进行字符串替换。下面是一些步骤: 1. 添加 "Replace in string" 步骤到转换中。 2. 在步骤的 "Fields" 标签页中添加需要进行替换的字段。 3. 在步骤的 "Options" 标签页中设置要替换的字符串和替换后的字符串。 4. 运行转换,替换后的结果会在输出中显示。 注意事项: - 如果需要替换的字段有多个,可以添加多个 "Replace in string" 步骤,或者使用 "Copy rows to result" 步骤将所有字段复制到输出结果中,然后使用 "Formula" 步骤进行替换。 - "Replace in string" 步骤可以设置多个替换规则,可以使用正则表达式来进行匹配。 - 在使用正则表达式进行替换时,需要注意转义特殊字符。例如,要替换句子中的所有逗号为句号,可以使用正则表达式 ", ",但需要将其转义为 "\", 即 "\,"。 ### 回答2: Kettle字符串替换是指使用Kettle工具对一个字符串进行替换操作。Kettle是一款用于数据集成和数据转换的开源工具,可以方便地对数据进行处理和转换。 在Kettle中,我们可以使用"字符串替换"步骤来进行字符串的替换操作。首先,我们需要在Kettle中创建一个转换作业,并在作业中添加一个"字符串替换"步骤。然后,我们需要指定要替换的源字段和目标字段。 在"字符串替换"步骤中,我们可以定义多组替换规则,每组规则包含一个要替换的字符串和替换后的字符串。Kettle会依次对源字段中的字符串进行匹配,并将匹配到的字符串替换为指定的字符串。 除了简单的字符替换,Kettle还支持使用正则表达式进行字符串替换。通过使用正则表达式,我们可以更加灵活地对字符串进行匹配和替换。 在进行字符串替换时,我们可以选择是否将替换结果保存到目标字段中,或者只是在作业运行时进行替换操作,不保存结果。这取决于我们对数据处理结果的需求。 总之,Kettle字符串替换是一种简单而强大的数据处理方法,可以方便地对字符串进行替换操作,并在数据集成和转换过程中发挥重要作用。 ### 回答3: kettle字符串替换是指使用kettle工具对字符串进行替换操作。kettle是一种常用的ETL工具,它可以帮助我们进行数据抽取、转换和加载等操作。字符串替换是其中的一种常见操作,通常用于将一个字符串中的指定内容替换成新的内容。 在kettle中进行字符串替换操作通常包括以下几个步骤: 1. 打开kettle工具,并创建一个新的转换或作业。 2. 新建一个"文本文件输入"步骤,并设置输入文件的路径和相关配置,如字符编码等。 3. 创建一个"字符串替换"步骤,并连接到上一步的输出。 4. 在字符串替换步骤中,设置要替换的字段和需要替换的内容。可以设置多个字段和多个需要替换的内容。 5. 设置替换后的内容,可以是固定值,也可以使用变量或表达式来生成。 6. 运行转换或作业,kettle会根据设置的规则进行字符串替换操作,并生成替换后的结果。 通过kettle字符串替换功能,我们可以灵活地处理字符串内容,实现各种数据处理需求。无论是简单的文字替换,还是复杂的正则表达式匹配替换,kettle都提供了丰富的功能和表达式来满足我们的需求。 总之,kettle字符串替换是一种非常方便实用的功能,在数据处理和清洗中经常使用。它可以帮助我们快速、准确地处理大量的文本数据,有效地提高工作效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

他们叫我技术总监

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值