如何配置Apache NiFi的SplitText?拆分文件时如何保留首行?
Apache NiFi SplitText处理器配置及保留首行方案
1. 配置SplitText处理器拆分文件数据
- 把SplitText处理器拖到NiFi画布,连上提供文件数据的上游组件(比如GetFile)
- 双击打开处理器配置面板,关键参数设置:
- Split Mode:选
Line-based按行拆分,或者Text按自定义分隔符拆分 - Line Split Count:按行拆分时,设置单次拆分的行数(比如设1就是每行生成一个单独的FlowFile)
- Split Delimiter:选Text模式时,输入分隔符(比如
\n代表换行,或者特定字符串) - Max Split Size:可选,设置单个输出FlowFile的最大容量,避免生成过大文件
- Split Mode:选
- 配置完启动处理器,上游数据就会按规则拆分输出
2. 拆分时在每个输出文件保留首行
如果要让每个拆分出的文件都带上首行(比如标题、ID行),结合你给出的示例场景,操作如下:
- 配置SplitText处理器时,把Header Line Count设为1,处理器会自动将首行识别为标题行,每个拆分后的FlowFile都会包含这个标题行+对应的内容行
- 以你的示例输入为例:
输入内容:
1\nбережливое производство\nканбан\nсокращение потерь
配置Header Line Count=1、Line Split Count=1后,SplitText输出的每个FlowFile内容为:1 бережливое производство1 канбан1 сокращение потерь - 要转成期望的JSON格式,再加一个ReplaceText处理器:
- 设置
Search Value为^(.*)\n(.*)$ - 设置
Replacement Value为{"id": $1, "value": "$2"} - 处理后就能得到:
{"id": 1, "value": "бережливое производство"}这类结果
- 设置
内容的提问来源于stack exchange,提问作者Nikolay Smelov
相关产品推荐
相关产品推荐

