Использование ReplaceTextWithMapping . Общий поток:
GenerateFlowFile:
UpdateRecord:
Настройте CSVReader
для обработки первой строки в качестве заголовка. Оставьте другие свойства нетронутыми. Сконфигурируйте CSVRecordSetWrite
для обработки первой строки как заголовка, схемы, получаемой из свойства текста схемы, и установите для текста схемы значение:
{
"type":"record",
"name":"foobar",
"namespace":"my.example",
"fields":[
{
"name":"name",
"type":"string"
},
{
"name":"age",
"type":"int"
},
{
"name":"id",
"type":"string"
},
{
"name":"nick",
"type":"string"
}
]
}
Обратите внимание, что он включает новый столбец. ReplaceTextWithMapping:
Отображение содержимого файла:
1 1S
2 3S
3 4S
Значения разделены табуляцией. Регулярное выражение должно соответствовать последнему значению, за которым не следует запятая в каждой строке:
[0-9](?!,)
Демонстрация отладки
Результат: