我有一些日期时间标记,我假装将其分组在紧接其之前的四分之一小时内。
例如,我有以下数据:
[
{
"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"
}
]
经过一些JOLT转换后,我得到了以下数据:
[ {
"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"
} ]
在这里,我有问题。借助网页http://jolt-demo.appspot.com/,我成功使用以下JOLT代码将“ 0”转换为“ 00”
[
{ "operation": "modify-overwrite-beta",
"spec": {
"*": {
"minutes": "=concat('0',@(0))"
}
}
},
{ "operation": "modify-overwrite-beta",
"spec": {
"*": {
"minutes": "=substring(@(1,minutes),1,3)"
}
}
}
]
预期的输出(并通过网页获得):
[ {
"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中的实际输出:
[ {
"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中正常运行。有人有什么技巧可以接受字符串的后两项吗?
答案 0 :(得分:0)
您可以转换为数字并将其左移。看看是否有帮助
message.guild.channels.create('ticket ' + message.member.displayName, { parent: '744477882730020965' });
输入:
[
{
"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"
}
]