es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for 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:

    [{
        "operation": "modify-overwrite-beta",
        "spec": {
            "Birthday": "= ${Birthday:toDate('MM-dd-yyyy'):format('yyyy-MM-dd')}"
        }
    }]
    

    Con esto se debería transformar correctamente la fecha de MM-dd-yyyy a yyyy-MM-dd.

Comments are closed.