【问题标题】:Update csv value using executescript processor fails in apache-nifi using groovy使用 groovy 在 apache-nifi 中使用 executescript 处理器更新 csv 值失败
【发布时间】:2019-11-18 07:48:20
【问题描述】:

此问题与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 csv 写入模式。

【问题讨论】:

    标签: csv groovy apache-nifi


    【解决方案1】:

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

    这将给出您预期的结果。

    【讨论】:

      猜你喜欢
      • 2020-03-10
      • 2020-03-01
      • 2020-09-20
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多