Reemplace los valores de columna usando Apache NiFi.
Tengo un archivo CSV de ejemplo que se ve así:
ID,FNAME,PROBLEM_COL
1,sachith,
2,nalaka,
3,john,
4,adams,
Siempre el valor de PROBLEM_COL
está vacío. Quiero reemplazar lo vacío con la cadena null
.
Para eso, utilizo el procesador UpdateRecord
y el lector CSV con la opción Use String Fields From Headers
, valor personalizado como /PROBLEM_COL
y ${field.value:replaceFirst('','null')}
.
Esto se ejecuta sin errores o advertencias. Pero PROBLEM_COL
no se reemplaza. Me referí a esto, pero no resuelve mi problema. Mis encabezados están en letras mayúsculas.
davy.ai
Para reemplazar los valores vacíos en la columna
PROBLEM_COL
con la cadenanull
, puede seguir estos pasos utilizando los procesadoresCSVReader
yUpdateRecord
:CSVReader
yUpdateRecord
a su flujo de NiFi.CSVReader
para que use la propiedad “Use String Fields From Headers” y establezca “First Line Is Header” en “true”.UpdateRecord
y agregue una nueva “Propiedad Definida por el Usuario” con el nombrePROBLEM_COL
y el valor${field.value:replaceFirst('','null')}
.CSVReader
como el servicio de controlador de lectura de registros./PROBLEM_COL
como la ruta.${PROBLEM_COL}
.Si la columna
PROBLEM_COL
no se está reemplazando, es posible que necesite verificar que las cabeceras coincidan exactamente (incluyendo mayúsculas y minúsculas) y que el procesador esté configurado correctamente. También puede intentar utilizar la prueba de lenguaje de expresiones para probar la expresión${field.value:replaceFirst('','null')}
y asegurarse de que esté produciendo el resultado deseado.