Я использую ExecuteGroovyScript
процессор только для того, чтобы извлечь только нужные столбцы для моих дальнейших вычислений.
Groovy Код:
def flowFile = session.get()
if(!flowFile) return
flowFile = session.write(flowFile, {inputStream, outputStream ->
outputStream.withWriter("UTF-8"){ w ->
inputStream.eachLine("UTF-8"){ line ->
def row = line.split(';',-1)
w << row[0,1,6,8,9,11].join(',') << '\n'
}
}
} as StreamCallback)
session.transfer(flowFile, REL_SUCCESS)
Но для некоторых csv
я получаю java .lang.ArrayIndexOutOfBoundsException .
Мой CSV:
id,name,email,address
1,sachith,sachith@email.com,{"Lane":"ABC Lane","No":"24"}
2,nalaka,nalaka@email.com,{"Lane":
"DEF Lane","No":"34"}
Как я могу получить только 1 строку и игнорировать другие две строки? Я пробовал ValidateCSV
процессор для проверки. Но это не может захватить это.