二次开发seatunnel/waterdrop实现在filter中正则替换所有列

为了解决mysql导入hive时因回车换行符导致的数据错乱,本文介绍了在seatunnel中进行二次开发,新增`ReplaceColumns` filter类,实现批量替换所有列或指定列的正则内容,减少了大量配置工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.背景

我在使用seatunnel实现从mysql导入到hive的时候,遇到mysql中存在回车换行符“\n\r”时,到hive中会出现在换行符处切分,导致换行前的一条记录后面的列都是空,而换行后的一条记录的前面的列都是空,严重干扰了结果的准确性,所以需要解决这个问题。

本身seatunnel的filter是有将列里面的内容通过使用正则的方式进行替换的,但是需要每一个列都要进行配置,如果列特别多的话,会产生很大的工作量。Seatunnel Replace

filter{
    replace {
        target_field = "col1"
        source_field = "col1"
        pattern = "[\n\r]"
        replacement = ""
        result_table_name = "tb_tmp1"
    }
    replace {
        source_table_name = "tb_tmp1"
        target_field = "col2"
        source_field = "col2"
        pattern = "[\n\r]"
        replacement = ""
        result_table_name = "tb_tmp2"
    }
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值