You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用NiFi处理器处理PowerTop导出的CSV文件(从第13行开始)

PowerTop生成CSV的NiFi处理方案

问题背景

我有一份PowerTop工具生成的CSV文件,需在上传前修改:

  • 仅处理第13行及以后的内容,第13行表头为:Usage;Events/s;Category;Description;PW Estimate
  • 要以分号为分隔符拆分表头并匹配对应值,得到结构化结果
  • 作为NiFi新手,尝试过UpdateRecord处理器但未成功。

分步处理方案

1. 过滤前12行,保留有效数据

推荐用ReplaceText处理器快速过滤:

  • 搜索正则:^.*\r?\n
  • 替换值:留空
  • 替换次数:12
  • 直接剔除前12行,只保留从第13行开始的表头和数据。

如果前12行格式不规则,改用SplitText + RouteOnAttribute组合:

  • SplitText:按行拆分文件,每个FlowFile对应一行
  • RouteOnAttribute:添加属性lineNumber,设置路由规则${lineNumber:ge(13)},只放行行号≥13的FlowFile

2. 解析CSV为结构化数据

用ConvertRecord处理器搭配CSVReader和CSVRecordSetWriter:

CSVReader配置

  • Delimiter:设置为;
  • First Line is Header:勾选
  • Header:手动指定为Usage,Events/s,Category,Description,PW Estimate(确保和目标表头一致)
  • 若CSV字段带引号,开启Quote Character并设置为"

CSVRecordSetWriter配置

  • Delimiter:设置为;
  • Include Header Line:勾选
  • Schema Write Strategy:选Use Schema Name或Use Attribute,确保输出表头正确

3. 按需修改数据(可选)

如果需要调整字段内容,在ConvertRecord后添加UpdateRecord:

  • 用RecordPath指定目标字段,比如/Usage
  • 设置Value为转换规则或固定值,比如${record:value('/Usage'):trim()}去除空格

关键排查点

  • 检查PowerTop生成的CSV是否有隐藏字符,可先用ReplaceText去除非打印字符
  • 确认CSVReader的编码和源文件一致,避免乱码导致解析失败

内容的提问来源于stack exchange,提问作者Lalit Shukla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 05:14:56