首页 > 解决方案 > 如何使用 apache nifi 从值中删除特定文本

问题描述

我有一个 csv 文件,我需要从列中删除一些特定的文本并为此替换另一个值。

我的.csv

date,name
20191106,sachith

为此,我使用UpdateRecord了具有以下配置的处理器。

/date->${field:replaceAll(2019,1212)}

CSV 阅读器 CSV 阅读器

CSV 记录器 在此处输入图像描述

我当前的配置使以下 csv 结果。

date,name
"",sachith

预期结果

date,name
12121106,sachith

我在这里想念什么?我使用过QueryRecord处理器,但它也没有解决我的问题。

标签: csvapache-nifi

解决方案


如果没有完整的 UpdateRecord 配置,我无法准确确认您所做的事情,但您的 Reader 和 Writer 是 100% 正确的。为了达到您的预期结果,您需要将 UpdateRecord 配置更新为以下内容: 在此处输入图像描述

我将替换值策略更改为“记录路径值”,这允许我使用“/日期”动态属性右侧的记录路径填充日期字段。有关如何在此处使用记录路径的更多信息:https ://nifi.apache.org/docs/nifi-docs/html/record-path-guide.html

更接近原始配置的替代解决方案是:

在此处输入图像描述

您唯一缺少的是引用该字段的值。有关 UpdateRecord 的更多信息(如果您单击附加详细信息链接),请访问此处:https ://nifi.apache.org/docs/nifi-docs/components/nifi-docs/components/org.apache.nifi/nifi -standard-nar/1.9.0/org.apache.nifi.processors.standard.UpdateRecord/index.html

我的思绪跳到记录路径有点太快了,但两者都有效!

如果您遇到任何其他问题,请告诉我:)


推荐阅读