Apache NiFi: определение записей CSV, содержащих специальные символы - PullRequest
0 голосов
/ 25 октября 2019

При использовании Apache NiFi мне нужно отфильтровать записи в формате csv, которые имеют набор специальных символов.

Например, если набор специальных символов «FFF». Мой CSV будет

name,age,city
John,23,New York
FFF,45,London
Himsara,18,Adelaide

Тогда вторая запись должна быть извлечена из CSV и помещена в другой CSV. Также, даже если в столбцах города или возраста указано «FFF», вся запись должна быть удалена.

Пожалуйста, предложите мне процессоры, которые мне необходимы для достижения этой цели. Также было бы очень полезно, если бы вы могли перечислить конфигурации, которые необходимо изменить.

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

В качестве альтернативы вы можете использовать процессор RouteText . Он разделит файл потока на основе условия. Строки, содержащие FFF, будут направлены к сопоставленным отношениям, остальные строки будут направлены к несогласованным отношениям.

enter image description here

Настройка процессора RouteText:

settings

1 голос
/ 25 октября 2019

Используйте Процессор QueryRecord в nifi и определите Записывающее / записывающее устройство Схемы Avro для чтения вашего входящего потокового файла.

Затем добавьте новое свойство в QueryRecord* Процессор 1009 * как (Apache calcite sql)

select * from FLOWFILE where name !="FFF"

Теперь используйте вновь добавленную связь с процессором QueryRecord для дальнейшей обработки, и NiFi приведет к потоковому файлу, где имяне равно 'FFF'.

...