Json NiFi,Jolt';"安全行动";“子字符串”;不';行不通
我有一些日期时间标记,我假装在它之前的一刻钟把它分组 例如,我有以下数据:Json NiFi,Jolt';"安全行动";“子字符串”;不';行不通,json,apache-nifi,jolt,Json,Apache Nifi,Jolt,我有一些日期时间标记,我假装在它之前的一刻钟把它分组 例如,我有以下数据: [ { "id": "123", "dateTime": "2020-07-08T08:49:50+02:00", "value": "1" }, { "id": "123", "dateTime&qu
[
{
"id": "123",
"dateTime": "2020-07-08T08:49:50+02:00",
"value": "1"
},
{
"id": "123",
"dateTime": "2020-07-08T13:14:57+02:00",
"value": "1"
},
{
"id": "123",
"dateTime": "2020-07-08T13:15:15+02:00",
"value": "1"
},
{
"id": "123",
"dateTime": "2020-07-08T13:36:39+02:00",
"value": "1"
}
]
[ {
"id" : "123",
"dateHour" : "2020-07-08T08",
"minutes" : "45",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "0",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "15",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "30",
"value" : "1"
} ]
经过一些颠簸变换后,我得到了以下数据:
[
{
"id": "123",
"dateTime": "2020-07-08T08:49:50+02:00",
"value": "1"
},
{
"id": "123",
"dateTime": "2020-07-08T13:14:57+02:00",
"value": "1"
},
{
"id": "123",
"dateTime": "2020-07-08T13:15:15+02:00",
"value": "1"
},
{
"id": "123",
"dateTime": "2020-07-08T13:36:39+02:00",
"value": "1"
}
]
[ {
"id" : "123",
"dateHour" : "2020-07-08T08",
"minutes" : "45",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "0",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "15",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "30",
"value" : "1"
} ]
这里,我有个问题。有了这个网页,我成功地用下面的代码转换了“00”中的“0”
[
{ "operation": "modify-overwrite-beta",
"spec": {
"*": {
"minutes": "=concat('0',@(0))"
}
}
},
{ "operation": "modify-overwrite-beta",
"spec": {
"*": {
"minutes": "=substring(@(1,minutes),1,3)"
}
}
}
]
预期输出(并通过网页实现):
NiFi中的实际输出:
[ {
"id" : "123",
"dateHour" : "2020-07-08T08",
"minutes" : "045",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "00",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "015",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "030",
"value" : "1"
} ]
由于某些原因,“=substring()”函数在NiFi中无法正常工作。有没有人有什么诀窍来获取字符串的最后两项?您可以将其转换为数字并左键填充。看看是否有帮助
[
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"minutes": ["=toInteger", 0]
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"minutes": "=toString"
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"minutes": "=leftPad(@(1,minutes),2,'0')"
}
}
}
]
输入:
[
{
"id": "123",
"dateHour": "2020-07-08T08",
"minutes": "045",
"value": "1"
},
{
"id": "123",
"dateHour": "2020-07-08T13",
"minutes": "00",
"value": "1"
},
{
"id": "123",
"dateHour": "2020-07-08T13",
"minutes": "015",
"value": "1"
},
{
"id": "123",
"dateHour": "2020-07-08T13",
"minutes": "030",
"value": "1"
}
]
输出:
[ {
"id" : "123",
"dateHour" : "2020-07-08T08",
"minutes" : "45",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "00",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "15",
"value" : "1"
}, {
"id" : "123",
"dateHour" : "2020-07-08T13",
"minutes" : "30",
"value" : "1"
} ]
我无法更新NiFi的版本。它的版本是1.7.0,函数在其中工作的processorThat也是,但在NiFi 1.7.0中不工作:(感谢您的帮助