You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache NIFI的JoltTransformJSON处理器日期格式转换无效果原因排查

Jolt转换不生效的核心原因
  • Jolt转换规则的执行体系不支持直接嵌入NiFi Expression Language(EL),你在规范中写的${Birthday:toDate('MM-dd-yyyy'):format('yyyy-MM-dd')}会被Jolt判定为非合法的Jolt函数调用,不会执行计算,因此Birthday字段保留原始值。
  • Jolt有专属的内置函数体系,日期转换需要调用Jolt原生的toDate、format函数实现,不能混用NiFi EL的函数。
可行解决方案

方案1:调整Jolt规范使用原生函数

你可以将Chain DSL的规范修改为如下内容,直接在Jolt内部完成日期格式转换:

[{
    "operation": "modify-overwrite-beta",
    "spec": {
        "Birthday": "=format('yyyy-MM-dd', toDate('MM-dd-yyyy', @(1,Birthday)))"
    }
}]

执行后即可得到预期结果:

{
  "Name": "Jan",
  "Birthday": "1994-12-31"
}

方案2:使用UpdateRecord处理器完成转换

如果你更熟悉NiFi EL的用法,也可以不用JoltTransformJSON处理器,改用UpdateRecord处理器实现需求:

  1. 配置Record Reader为JsonTreeReader,Record Writer为JsonRecordSetWriter
  2. 添加自定义属性:
    • 键:/Birthday
    • 值:${field.value:toDate('MM-dd-yyyy'):format('yyyy-MM-dd')}
      该方案无需学习Jolt专属语法,更适配NiFI的原生使用逻辑。

内容的提问来源于stack exchange,提问作者Ruud Kapteijn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:54:05