代码之家  ›  专栏  ›  技术社区  ›  user4321

有没有办法在nifi表达式语言中循环以向数据添加填充?

  •  0
  • user4321  · 技术社区  · 7 年前

    记录中有一个日期字段。格式如下:“yyyy-mm-dd hh:mm:ss.sss”(将此日期值用作字符串)。在某些记录中,毫秒从源中舍入,例如

    1. 2018-05-15 15:30:20.123
    2. 2018-05-15 15:30:20.12
    3. 2018年5月15日15:30:20.3

    有没有办法在nifi中填充示例2和3中的额外零,如下所示?

    1. 2018-05-15 15:30:20.120
    2. 2018-05-15 15:30:20.300

    nifi表达式语言中有循环的方法吗?

    ps:现在我使用三个不同的处理器来完成这个循环,方法是将日期作为一个属性,并将其长度作为一个条件进行检查,如果需要,决定添加“0”。我尝试的另一种方法是使用执行脚本处理器。但试图找出 更好的解决办法? 是的。

    1 回复  |  直到 7 年前
        1
  •  5
  •   daggett    7 年前

    假设你有属性 date = 2018-05-15 15:30:20.3

    可以将updateattribute与以下表达式一起使用:

    ${date:append('000'):replaceAll('(\\.\\d{3})(.*)$','$1')}
    

    附加额外的零,然后用regexp replace删除不必要的