NIFI Jolt JSON 日期转换无效
NIFI Jolt JSON date transformation not working
在 Apache NIFI 数据流中,我尝试将日期从 MM-dd-yyyy 转换为 yyyy-MM-dd(MySQL 接受的默认格式作为日期)。
在带有 DSL“链”的 JoltTransformJSON 1.15.0 处理器的 NIFI 高级编辑器中,我输入了:
输入Json:
{
"Name": "Jan",
"Birthday": "12-31-1994"
}
Transformation Jolt 脚本:
[{
"operation": "modify-overwrite-beta",
"spec": {
"Birthday": "=${Birthday:toDate('MM-dd-yyyy'):format('yyyy-MM-dd')}"
}
}]
结果:
{
"Name": "Jan",
"Birthday": "12-31-1994"
}
我没有收到任何语法错误。 Jolt 转换似乎没有改变任何东西。
为什么 Birthday 没有变形?
您可以在 JoltTransformJSON 处理器的规范部分
中使用以下连续规范
[
{
"operation": "modify-overwrite-beta",
"spec": {
"b": "=split('-', @(1,Birthday))",
"Birthday": "=concat(@(1,b[2]),'-',@(1,b[0]),'-',@(1,b[1]))"
}
},
{
"operation": "remove",
"spec": {
"b": ""
}
}
]
其中 用破折号拆分 当前日期值,并在第一步中使用 concat 函数重新排序。然后去掉上一步的辅助b
属性
在 Apache NIFI 数据流中,我尝试将日期从 MM-dd-yyyy 转换为 yyyy-MM-dd(MySQL 接受的默认格式作为日期)。
在带有 DSL“链”的 JoltTransformJSON 1.15.0 处理器的 NIFI 高级编辑器中,我输入了:
输入Json:
{
"Name": "Jan",
"Birthday": "12-31-1994"
}
Transformation Jolt 脚本:
[{
"operation": "modify-overwrite-beta",
"spec": {
"Birthday": "=${Birthday:toDate('MM-dd-yyyy'):format('yyyy-MM-dd')}"
}
}]
结果:
{
"Name": "Jan",
"Birthday": "12-31-1994"
}
我没有收到任何语法错误。 Jolt 转换似乎没有改变任何东西。 为什么 Birthday 没有变形?
您可以在 JoltTransformJSON 处理器的规范部分
中使用以下连续规范[
{
"operation": "modify-overwrite-beta",
"spec": {
"b": "=split('-', @(1,Birthday))",
"Birthday": "=concat(@(1,b[2]),'-',@(1,b[0]),'-',@(1,b[1]))"
}
},
{
"operation": "remove",
"spec": {
"b": ""
}
}
]
其中 用破折号拆分 当前日期值,并在第一步中使用 concat 函数重新排序。然后去掉上一步的辅助b
属性