Как сделать подсчет записи .csv и прикрепить это количество с процессором электронной почты, чтобы отправить кого-нибудь? - PullRequest
1 голос
/ 19 сентября 2019

До сих пор я пробовал следующее:

Nifi Flow for the record count

любезно опишите подробно, сколько способов вы можете прочитать .csv, что я узнал, что вам нужно предоставитьимя схемы для файла и затем определите схему в форме .avro или текста.Нужно ли предоставлять схему?

заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 19 сентября 2019

Используйте CalculateRecordStats процессор для чтения вашего CSV на основе предоставленной схемы / NiFi может получить схему из заголовка.

  • Добавляет процессор CaluculateRecordStats records.count атрибут для файла потока.

  • Вы также можете добавить пользовательское свойство , тогда NiFi также определит пользовательские свойства фильтра для файла потока также.

(или)

Использование QueryRecord процессора и добавление нового свойства с запросом SQL:

select count(*) cnt from FLOWFILE

  • Определите record reader/writer AVRO schema, чтобы получить количество записей в файле потока.

  • Затем используйте ExtractText процессор для захвата record count and keep as flowfile attribute.

  • Используйте извлеченное значение атрибута для включения в вашу электронную почту.

0 голосов
/ 20 сентября 2019

Помимо нескольких замечательных предложений, приведенных выше, существует процессор CountText, который достаточно прост, если ваш csv правильно отформатирован и завершен символами новой строки.Этот процессор будет подсчитывать количество строк, присутствующих во входящем тексте.Он предоставляет такие атрибуты, как -

Name                        Description
text.line.count             The number of lines of text present in the FlowFile 
                            content

text.line.nonempty.count    The number of lines of text (with at least one non- 
                            whitespace character) present in the original 
                            FlowFile

text.word.count             The number of words present in the original 
                            FlowFile

text.character.count        The number of characters (given the specified 
                            character encoding) present in the original FlowFile

. Вы можете легко получить эти атрибуты в PutEmail процессорах или даже обновить имя файла с помощью счетчика, используя переменные языка выражений.Например, используйте UpdateAttribute для обновления имени файла до "FooBar_"${text.line.count}.csv

0 голосов
/ 19 сентября 2019

GetFile -> CalculateRecordStats с CSV Reader.Затем вы можете получить атрибут record.count без каких-либо настроек.

...