首页 > 解决方案 > 如何提取NiFi中引号中的字段?

问题描述

我有一些管道分隔的文件。每个字段都由这样的引号限定。

"Created_Date__c"|"CreatedById"|"CreatedDate"|"Guid_c"
"2020-03-02 00:00:00"|"0053i000002XCpAAG"|"2020-03-02 16:01:34"|"94bf83ccf9daf610VgnVCM100000307882a2RCRD"
"2020-03-03 00:00:00"|"0053i000002XCpAAG"|"2020-03-03 09:15:56"|"1a4bb238cdedd610VgnVCM100000307882a2RCRD"
"2020-03-03 00:00:00"|"0053i000002XCpAAG"|"2020-03-03 09:52:33"|"22408baca6fee610VgnVCM100000307882a2RCRD"

我需要清理这些数据并且需要看起来像这样。

Created_Date__c|CreatedById|CreatedDate|Guid_c
2020-03-02 00:00:00|0053i000002XCpAAG|2020-03-02 16:01:34|94bf83ccf9daf610VgnVCM100000307882a2RCRD
2020-03-03 00:00:00|0053i000002XCpAAG|2020-03-03 09:15:56|1a4bb238cdedd610VgnVCM100000307882a2RCRD
2020-03-03 00:00:00|0053i000002XCpAAG|2020-03-03 09:52:33|22408baca6fee610VgnVCM100000307882a2RCRD

我尝试将 ReplaceText 与这些配置一起使用。搜索值 -^"(.*)"$和替换值 - $1。但是这些配置不起作用,文件路由失败。不确定可能是什么问题。

接受其他建议。提前致谢。

标签: etlapache-nifidata-cleaning

解决方案


我认为您最好的选择是ConvertRecord处理器,具有CSVReader推断架构 + 将 csv sep 更改为您自己的 |,以及CSVRecordSetWritter选项Quote Mode设置为Do Not Quote Values并根据您的需要设置您的 sep。


推荐阅读