читать файл с разделителями в формате Groovy - PullRequest
0 голосов
/ 14 февраля 2020

В моей работе NiFi я запускаю скрипт groovy через InvokeScriptedProcessor. Сценарий Groovy должен считывать файл с разделителями \ u0001 и выполнять некоторые преобразования для нескольких столбцов. Ниже приведен фрагмент кода, который я написал для разделения столбцов записи.

def fieldDelimiter = context.getProperty(csvFieldDelimiter).evaluateAttributeExpressions().getValue()
while (line = bufferedReader.readLine()) {
  String[] cols = line.split(Pattern.quote(fieldDelimiter),-1)

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

Ниже приведены параметры, предоставленные в InvokeScriptedProcessor.

enter image description here

Я что-то не так делаю? Если я тестирую приведенный ниже фрагмент кода в Groovy, доступном на моем локальном рабочем столе, он работает нормально.

def fieldDelimiter = "\u0001"
def columns = "col1\u0001col2"
String[] cols = columns.split(Pattern.quote(fieldDelimiter),-1)
println "cols output: " + cols[1]

РЕДАКТИРОВАТЬ: (содержимое файла потока)

enter image description here

...