Можно ли удалить пробелы из названия заголовка файла CSV в NiFi? - PullRequest
0 голосов
/ 20 сентября 2018

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

Прикрепление скриншота для справки.Пример: «Имя» Я хочу «Имя»

Я использую процессор ReplaceText , в котором в поле «Поиск» я передаю \ s для поиска только пробелов в строке заголовка и значения замены в виде пустой строки.Также мой режим оценки - «Линия за строкой».так что теперь выходной файл отображается как FirstName, LastNameshraddha, srivastavsanstuti, srivastav Так что он показывает все в одной строке.Я хочу, чтобы пробелы только удалялись из строки заголовка и не касались / не объединяли значения данных. Спасибо

Скажите, пожалуйста, как их удалить.Спасибо!

enter image description here

Ответы [ 3 ]

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

Попробуйте с ниже ReplaceText конфиги:

Поиск значения

(.*)

Замена значения

${'$1':replace(" ","")} //we are applying NiFi expression language replace function on the captured group.

Набор символов

UTF-8

Максимальный размер буфера

1 MB

Стратегия замены

Regex Replace

Режим оценки

Entire text //works with Line-By-Line mode also

enter image description here

См. эту ссылку для более подробной информации о языке выражения NiFi.

Входной файл потока:

First Name,Last Name
shraddha,srivastav
sanstuti,srivastav

Выводфайл потока:

FirstName,LastName
shraddha,srivastav
sanstuti,srivastav
0 голосов
/ 22 сентября 2018

@ Шу в правильном направлении, но проблема в том, что все пробелы в тексте будут заменены.Чтобы заменить пробелы ТОЛЬКО в строке заголовка, в решении Шу измените:

  1. Поиск значения:

(? S) (^ [^\ n] *) (. * $)

Стоимость замены:

$ {'$ 1': replace ("", "")} $ 2

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

Вы должны быть в состоянии сделать следующее совпадение:

/[\s]/g

Соответствует всем пробелам.Затем просто замените на пустую строку. Редактировать :

Попробуйте вместо этого:

/(?<!\n.+)[ ]/g

Он будет соответствовать пробелу только в том случае, если перед ним нет символа новой строки.Другими словами, только первая строка будет соответствовать.Снова замените пустую строку.

...