Как конвертировать CSV в JSON, используя Apache Nifi? - PullRequest
0 голосов
/ 21 ноября 2018

Как конвертировать CSV в JSON с помощью Apache Nifi?
У меня есть файл CSV, и мне нужно конвертировать в json.Как нарисовать нормальную блок-схему.Пожалуйста, сообщите мне свойства и детали фигуры.Насколько я понимаю, 4 блока там.1. GenerateFLow 2. ConverttoAvro 3. Converttojson 4. Сохраните файл.Я новичок в Nifi, и я установил nifi, пытаясь настроить

"model","speed","mileage"
"audi",4,2
"benz",4,10
"bmw",7,4
"jaguar",7,22

Мой Json

[
  {
    "model": "audi",
    "speed": 4,
    "mileage": 2
  },
  {
    "model": "benz",
    "speed": 4,
    "mileage": 10
  },
  {
    "model": "bmw",
    "speed": 7,
    "mileage": 4
  },
  {
    "model": "jaguar",
    "speed": 7,
    "mileage": 22
  }
]

Я прошел Преобразование файла CSV в JSON с использованием Apache NiFi

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Вы можете создать скрипт Python, который конвертирует CSV в JSON.Затем добавьте процессор «ExecuteScript» для запуска этого сценария с вашим потоком.Скрипт Python должен уметь читать поток, конвертировать CVS в JSON и затем возвращать JSON в поток.Вы также можете использовать другой язык программирования, если вам не нравится Python.

0 голосов
/ 21 ноября 2018

Подход, который вы описали в вопросе: old (needs to follow if you are using prior to NiFi-1.2 version).

Начиная с NiFi-1.2 введено record oriented processors.

  • Для вашего случая Используйте ConvertRecord процессор и настройте / включите Record Reader (CSVReader) / Writer (JsonSetWriter) контроллерservices.

  • Затем процессор NiFi ConvertRecord считывает входящие данные CSV и записывает выходной файл потока в формате JSON.

См. , эта ссылка описывает пошаговую процедуру convertCsvtoJson с использованием процессора ConvertRecord.

Starting from NiFi-1.2 Version Поток:

1.GenerateFlowFile 
2.ConvertRecord
3.SaveFile (Using PutFile/PutHDFS)

Prior to NiFi-1.2 Version Расход:

1.GenerateFlowFile
2.InferAvroSchema
3.ConvertCSVToAvro
4.ConvertAvroToJSON
...