Apache nifi &引用;无法将属性值解析为“日期”;在Nifi UpdateAttribute处理器中

Apache nifi &引用;无法将属性值解析为“日期”;在Nifi UpdateAttribute处理器中,apache-nifi,Apache Nifi,de9048c5-0171-1000-4355-5efd185aa6ad 更新属性日期 61a62c99-d8fc-3810-0000-000000000000 b055aedb-ad9e-374d-0000-000000000000 0 0 nifi更新属性nar org.apache.nifi 1.11.4 警告 1. 删除属性表达式 删除属性表达式 存储状态 存储状态 有状态变量初始值 有状态变量初始值 规范值查找缓存大小 规范值查找缓存大小 创建日期 创建日期 修改日期 修改日期 sch


de9048c5-0171-1000-4355-5efd185aa6ad
更新属性日期
61a62c99-d8fc-3810-0000-000000000000
b055aedb-ad9e-374d-0000-000000000000
0
0
nifi更新属性nar
org.apache.nifi
1.11.4
警告
1.
删除属性表达式
删除属性表达式
存储状态
存储状态
有状态变量初始值
有状态变量初始值
规范值查找缓存大小
规范值查找缓存大小
创建日期
创建日期
修改日期
修改日期
schema.name
schema.name
语句类型
语句类型
全部的
假的
30秒
删除属性表达式
存储状态
不存储状态
有状态变量初始值
规范值查找缓存大小
100
创建日期
${创建日期:toDate(“EEE-MMM-dd-HH:mm:ss-z-yyyy”):toNumber():格式(“yyy-mm-dd-HH:mm:ss.SSS”)}
修改日期
${modified_date:toDate(“EEE-MMM-dd-HH:mm:ss-z-yyyy”):toNumber():format(“yyy-mm-dd-HH:mm:ss.SSS”)}
schema.name
村庄
语句类型
${cdc.event.type}
0
0秒
定时器驱动
1秒
假的
Schema=乡村和乡村;语句类型
假的
成功
跑步
org.apache.nifi.processors.attributes.UpdateAttribute
2020年6月13日22:39:36

@Ganesh Kumar您要查找的表达式语言如下:

${testValue:toDate("EEE MMM dd HH:mm:ss z yyyy"):toNumber():format("yyyy-MM-dd HH:mm:ss.SSS")}
$[0].created_date
${created_date:toDate("EEE MMM dd HH:mm:ss z yyyy"):toNumber():format("yyyy-MM-dd HH:mm:ss.SSS")}
在我的NiFi测试中,我在updateAttribute 1中设置testValue=“Tue Mar 31 23:08:47 IST 2020”,然后直接到另一个updateAttribute 2。我确实注意到我的输出是3小时,但怀疑这只是我当地的时区差异

流文件输出为:

test1
2020-03-31 21:08:47.000

testValue
Tue Mar 31 23:08:47 IST 2020
在上述评论之后于2020年6月17日编辑:

在EvaluateJsonPath中访问每个元素的json数组,如下所示:

${testValue:toDate("EEE MMM dd HH:mm:ss z yyyy"):toNumber():format("yyyy-MM-dd HH:mm:ss.SSS")}
$[0].created_date
${created_date:toDate("EEE MMM dd HH:mm:ss z yyyy"):toNumber():format("yyyy-MM-dd HH:mm:ss.SSS")}
然后将${created_date}属性与上面在updateAttribute中测试的表达式语言一起使用,如下所示:

${testValue:toDate("EEE MMM dd HH:mm:ss z yyyy"):toNumber():format("yyyy-MM-dd HH:mm:ss.SSS")}
$[0].created_date
${created_date:toDate("EEE MMM dd HH:mm:ss z yyyy"):toNumber():format("yyyy-MM-dd HH:mm:ss.SSS")}
您可以在以下位置找到模板演示(右侧流程):

您应该使用updateAttribute配置的屏幕截图更新帖子。@steven dfheinz仍然收到相同的错误,updateAttribute配置已附加。当updateAttribute是名为create\u date set的属性之前的Q中有一个流文件时?我想不是。下面的表达式语言语法正确。仅当${testDate}或在您的情况下${created_date}已设置为属性时,它才起作用。您的错误是,它不是一个有效的值,不能解析为日期。@steven dfheinz我的目的是从CaptureChangeMySQL创建的JSON转换键created_date的值。我的流程是capturechangemysql->RouteonAttribute->GetTablename->JoltTransferorMJSON->Update attribue->Putdatabaserecord。到目前为止,我已经在UpdateAttribute.之前添加了“EvaluteJsonPath”。建议如何处理它。@steven Dfeinz我得到了预期的结果,我在表达式中犯了错误。它应该是“UpdateRecord”处理器中的${field.value:equals({0}”):ifElse(“TRUE”,“FALSE”)}。谢谢