NiFi:路由CSV,按内容拆分,&;按相同内容更改名称
我有这个示例NiFi:路由CSV,按内容拆分,&;按相同内容更改名称,csv,apache-nifi,Csv,Apache Nifi,我有这个示例csv文件: school, city, person_id, drivers_license_number Georgetown, DC, 1, 1111 Vanderbilt, Nashville, 2, 2222 Ole Miss, Oxford, 3, 3333 Penn State, University Park, 4, 4444 NYU, New York City, 5, 5555 Georgetown, DC, 6, 6666 Georgetown, DC, 7,
csv
文件:
school, city, person_id, drivers_license_number
Georgetown, DC, 1, 1111
Vanderbilt, Nashville, 2, 2222
Ole Miss, Oxford, 3, 3333
Penn State, University Park, 4, 4444
NYU, New York City, 5, 5555
Georgetown, DC, 6, 6666
Georgetown, DC, 7, 7777
NYU, New York City, 8, 8888
Ole Miss, Oxford, 9, 9999
Vanderbilt, Nashville, 10, 1010
Penn State, University Park, 11, 1212
TL/DR,我想通过NiFi将此csv
路由,并通过school
列保存到单独的csv
文件中,例如,所有三个Georgetown
条目都保存到一个带有列标题的文件中
我知道我的Q类似于,和
到目前为止,我的设置:
我使用GetFile
连接到我的目录,并在/school
上配置PartitionRecord
:
我想我在这里出错了:
我将ExtractText
配置为:
最后一个阶段,
PutFile
只是将所有内容保存回同一个.txt
文件中,但按school
分组。我不知道如何根据学校的不同来更改文件名,或者如何将它们发送到自己的文件中 您不应该使用SplitText或ExtractText,来自PartitionRecord的流文件已经按学校分组,每个学校一个流文件。在PartitionRecord和PutFile之间放置一个UpdateAttribute处理器,并设置filename=${school}以将文件名更改为学校名称。如何处理拆分/matched/unmatched/original/etc-以上这些路由是否正确?或者我应该将故障/原始/etc路由到LogAttribute,还是其他什么?谢谢,您的建议非常有效-(最后一个问题,我保证),PutFile将它们保存为txt文件,我如何将输出更改为csv文件?我不确定您的意思,csv文件只是碰巧以某种方式格式化的文本,如果您希望它具有.csv扩展名,那么在UpdateAttribute中,只需将其文件名=${school}.csvI现在就意识到这一点。谢谢