Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

210
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!