mergecontent处理器没有给出预期的结果

问题描述 投票:0回答:1

我在多个小文件中有json数据(有时在文件中只有一行或空文件)。

我想将所有小文件合并到单个大文件中。

我收到一个意想不到的格式的大文件。

例如:

档案1:

{"code"="1", "color"="green"}
{"code"="2", "color"="blue"}
{"code"="3", "color"="orange"}

档案2:

{"code"="4", "color"="yellow"}
{"code"="5", "color"="red"}

使用MergeContent后,我得到以下输出

{"code"="1", "color"="green"}
{"code"="2", "color"="blue"}
{"code"="3", "color"="orange"}{"code"="4", "color"="yellow"}
{"code"="5", "color"="red"}

预期产出

{"code"="1", "color"="green"}
{"code"="2", "color"="blue"}
{"code"="3", "color"="orange"}
{"code"="4", "color"="yellow"}
{"code"="5", "color"="red"}

感谢任何帮助谢谢

apache-nifi
1个回答
2
投票

这可能是因为file-1在最后一行之后没有换行符。 bin-packing合并实际上是一个接一个地写入每个流文件的原始字节而没有字节中的内容的概念,因此第二个文件的字节紧跟在第一个文件的字节之后。

Header,Demarcator和Footer的属性将相应地插入字节周围。因此,使用“文本”的“分隔符策略”并输入shift +进入“分界符”值将告诉它在每批字节之间输入换行符。

请记住,如果某些文件以新行结尾,那么有时您会通过这种方法连续获得两个新行。您可以在事后使用RouteText过滤掉它,或者尝试使用ReplaceText进行清理。

© www.soinside.com 2019 - 2024. All rights reserved.