使用NiFi删除CSV文件中的空白行

时间:2019-01-03 22:48:00

标签: apache apache-nifi

我想实现一个简单的用例,以删除CSV文件中找到的任何空白行。如何使用NiFi做到这一点?

我具有CSV文件,如下所示:(请查看附件屏幕快照,其中显示需要删除的行) enter image description here

我想使用NiFi在标题上方的CSV中删除第一个空白行。请提出任何建议。谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用ReplaceText处理器,将\A\n|\n*\s*(?=\n)替换为''(空替换值)。搜索正则表达式查找:

  • \A\n-内容的开头紧跟换行符 OR
  • \n*\s*(?=\n)-换行符(0或更多),后跟空格(0或更多),后跟换行符(未使用超前组捕获)

更新

由于我只是created a template,所以不确定为什么对某些用户不满意,或者为什么它不起作用,它确实按所述工作。

Overview of NiFi flow

Configuration of GenerateFlowFile processor

Configuration of ReplaceText processor

2019-01-08 12:25:27,642 INFO [Timer-Driven Process Thread-2] o.a.n.processors.standard.LogAttribute LogAttribute[id=2f22d047-0168-1000-47b0-9ec963e65367] logging for flow file StandardFlowFileRecord[uuid=6c9cc388-19c8-4b98-9970-6a6e3979e4ee,claim=StandardContentClaim [resourceClaim=StandardResourceClaim[id=1546979126561-1, container=default, section=1], offset=152, length=50],offset=0,name=6c9cc388-19c8-4b98-9970-6a6e3979e4ee,size=50]
--------------------------------------------------
Standard FlowFile Attributes
Key: 'entryDate'
    Value: 'Tue Jan 08 12:25:27 PST 2019'
Key: 'lineageStartDate'
    Value: 'Tue Jan 08 12:25:27 PST 2019'
Key: 'fileSize'
    Value: '50'
FlowFile Attribute Map Content
Key: 'filename'
    Value: '6c9cc388-19c8-4b98-9970-6a6e3979e4ee'
Key: 'path'
    Value: './'
Key: 'uuid'
    Value: '6c9cc388-19c8-4b98-9970-6a6e3979e4ee'
--------------------------------------------------
header1,header2,header3
A1,A2,A3
B1,B2,B3
C1,C2,C3