使用groovy在apache-nifi中使用executescript处理器更新csv值失败

时间:2019-11-18 07:48:20

标签: csv groovy apache-nifi

此问题与this SO question

有关

以上解决方案解决了我的问题,现在我试图将其连接到来自QueryRecord处理器的流中。

这里QueryRecord将流文件分成两个流。假设customerssuppliers。并且ExecuteGroovyScript用于添加ORDERCOMPLAINT

csv示例:

id,record_type
1,0
2,0
3,1

所以结果应该是:

id,record_type
1,ORDER
2,ORDER
3,COMPLAINT

实际结果刚刚放置了默认的'IGNORE'值。

QueryRecord配置 QueryRecord Configuration

QueryRecord csv写入架构。 CSV writter

1 个答案:

答案 0 :(得分:3)

如果您只想简单地更新字段值,请使用UpdateRecord处理器。

按如下所示输入文本时:

id,record_type
1,0
2,0
3,1

然后将记录读取器设置为CSVReader,并将Schema Access Strategy的选项Use String Fields From Header设置为UpdateRecord。作者并不关心。 Record Reader CSVReader Record Writer CSVRecordSetWriter Replacement Value Strategy Literal Value /record_type ${field.value:replace('0','ORDER'):replace('1','COMPLAINT')} 处理器属性如下所示:

Aurthor.associate=(models)=>
{
 Author.hasMany(Image);
}

这将给您预期的结果。