此问题与 this SO question 相关
上述解决方案解决了我的问题,现在我尝试将其连接到来自 QueryRecord
处理器的流中。
这里这个QueryRecord
将我的流文件分成两个流。假设客户
和供应商
。而ExecuteGroovyScript
用于添加ORDER
和COMPLAINT
。
示例 csv:
id,record_type
1,0
2,0
3,1
所以结果应该是:
id,record_type
1,ORDER
2,ORDER
3,COMPLAINT
实际结果只是放置了默认的'IGNORE'
值。
最佳答案
如果您只想简单地更新字段值,请使用UpdateRecord
处理器。
当您输入如下文本时:
id,record_type
1,0
2,0
3,1
然后将记录读取器设置为 CSVReader
,并将选项架构访问策略
设置为使用标题中的字符串字段
。作者不担心。 UpdateRecord
处理器属性如下所示:
Record Reader CSVReader
Record Writer CSVRecordSetWriter
Replacement Value Strategy Literal Value
/record_type ${field.value:replace('0','ORDER'):replace('1','COMPLAINT')}
这将给出您预期的结果。
关于csv - 使用executescript处理器更新csv值在apache-nifi中使用groovy失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58910020/