NiFi конвертировать JSON в CSV с помощью ConvertRecord - PullRequest
0 голосов
/ 29 мая 2018

У меня есть поток json в apache nifi, который содержит динамические поля (максимум 11 полей), и я хочу преобразовать его в файл csv.

пример json:

{  
   "field1":"some text",
   "field2":"some text",
   "field3":"some text",
   "field4":"some text",
   "field5":"some text",
   "field6":"some text",
   "field7":"some text"
}

я не хочу использовать замену или оценку JSON;как я делаю это с ConvertRecord?использование этого процессора настолько странно и трудно для работы ...

Четкое выражение для динамических полей: у меня всего 11 полей.одна запись может содержать 7 полей, а следующая запись может содержать 11 полей и следующие 9 полей ...

1 Ответ

0 голосов
/ 29 мая 2018

Шаги, приведенные ниже, помогут вам сделать это .:

  • Подключите исходный процессор, который генерирует / выводит файлы JSON, к ConvertRecord.
  • Настройка ConvertRecord и установите для «Record Reader» использование JsonTreeReader службы контроллера и «Record Writer» для использования CSVRecordSetWriter службы контроллера
  • Настройте обе службы контроллера и установите свойство Schema Registry для использования AvroSchemaRegistry
  • Настроить AvroSchemaRegistry.Перейдите на вкладку «Свойства» и нажмите кнопку + , которая позволяет добавить динамическое свойство.
  • Дайте имя некоторого свойства (например: mySchema), а для значения дайте Avroсхема ожидается для вашего ввода JSON.(Вы можете использовать InferAvroSchema процессор для генерации схемы Avro для вашего JSON)
  • Сконфигурируйте JsonTreeReader и CsvRecordSetWriter и установите для свойства 'Schema Name' имя, указанное выше, в данном случае, mySchema.
  • Соедините отношения ConvertRecord с последующими процессорами в соответствии с вашими потребностями.
...