Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

211
Vistas
Cómo extraer una subcadena de un nombre de archivo de flujo en NIFI

Tengo un archivo llamado 'test.abcde.houses.csv' y quiero extraer la subcadena 'abcde' que usaré en mi próximo grupo de procesadores para consultar la base de datos.

Actualmente, estoy usando el grupo updateAttribute Processor para intentar extraer la subcadena.

Actualizar atributo

Este es el código que estoy usando en la sección de valores.

 var userPattern = java.util.regex.Pattern.compile('(.+?)\.[0-9]{8}-[0-9]{7,9}\..+'); var userMatcher = userPattern.matcher(fileName); var matchExists = userMatcher.matches(); var user; var userRemove; if (matchExists) { user = userMatcher.group(1); userRemove = user + "."; } else { throw 'Unable to parse username from file metadata.'; }

Pregunta:

  1. ¿Es esta la forma correcta de extraer una subcadena de un nombre de archivo de flujo en NIFI?
  2. ¿Estoy usando el grupo de procesadores correcto?
  3. ¿Este código funciona con Nifi?
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Debe usar NiFi Expression Language, una especie de función de secuencias de comandos propia de NiFi que brinda la capacidad de hacer referencia a atributos, compararlos con otros valores y manipular sus valores. Consulte esta documentación oficial .

El procesador UpdateAttribute se utiliza para actualizar/derivar nuevos/eliminar atributos. Por lo tanto, debe usar el lenguaje de expresión dentro de UpdateAttribute para manipular los atributos.

Ejemplo:

test.abcde.houses.csv : este es su nombre de archivo y si desea extraer la cadena abcde del nombre de archivo, puede usar la función getDelimitedField (función de cadena de lenguaje de expresión) como se muestra a continuación. Si la expresión no se evaluó, el atributo de user tendrá un valor empty/null .

Propiedad: user (si ya está presente, actualice/asigne el valor; de lo contrario, cree un nuevo atributo)

Valor: ${filename:getDelimitedField(2, '.')} ( abcde está en el segundo índice/posición en el valor del atributo de nombre de filename )

Expression Language tiene funciones booleanas, condicionales, de manipulación de cadenas, etc., por lo que puede replicar fácilmente su lógica JS en UpdateAttribute para derivar el valor de atributo deseado.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda