La transformación de fecha JSON de Jolt de NIFI no funciona.
En un flujo de datos de Apache NIFI, intento transformar una fecha de MM-dd-yyyy a yyyy-MM-dd (el formato predeterminado que será aceptado por MySQL como fecha).
En el editor avanzado de NIFI de un procesador JoltTransformJSON 1.15.0 con DSL “Chain” he introducido lo siguiente:
Json de entrada:
{
"Name": "Jan",
"Birthday": "12-31-1994"
}
Script de transformación Jolt:
[{
"operation": "modify-overwrite-beta",
"spec": {
"Birthday": "=${Birthday:toDate('MM-dd-yyyy'):format('yyyy-MM-dd')}"
}
}]
Resultado:
{
"Name": "Jan",
"Birthday": "12-31-1994"
}
No recibo ningún error de sintaxis. Parece que la transformación Jolt no cambia nada. ¿Por qué Birthday no se transforma?
davy.ai
El problema está en el script de Jolt. La operación modify-overwrite-beta acepta literales de cadena o expresiones de Jolt, pero no una mezcla de ambas. En el script actual, el valor de la clave de cumpleaños es una combinación de un literal de cadena (“=”) y una expresión de Jolt. Debería ser solo la expresión de Jolt:
Con esto se debería transformar correctamente la fecha de MM-dd-yyyy a yyyy-MM-dd.