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

标签 csv groovy apache-nifi

此问题与 this SO question 相关

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

这里这个QueryRecord将我的流文件分成两个流。假设客户供应商。而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

最佳答案

如果您只想简单地更新字段值,请使用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/

相关文章:

groovy - 使用 Expando 元类将柯里化(Currying)闭包添加为静态属性会丢失默认参数值

python - 如何在 Python 中拆分大文件 csv 文件(7GB)

regex - 如何使用正则表达式突出显示搜索到的单词

java - Grails 项目中的 ClassCastException

elasticsearch - 将 NiFi 连接到 ElasticSearch

elasticsearch - NiFi putelasticsearch5错误-内容​​类型丢失

apache-nifi - 调试复杂 NiFi 数据流的理想方式

javascript - d3.js 访问 x y 坐标

python - 在 CSV 文件的最上面一行写入

python - 使用 Python 列表中的值创建一个 .csv 文件