Преобразовать строковое поле в массив JSON или массив Avro в записи Nifi - PullRequest
0 голосов
/ 12 марта 2019

В настоящее время я получаю некоторые данные в формате csv, в котором есть одно поле, представляющее собой строковую кодировку массива JSON, например:

CED7B5D9-0378-4A37-B746-D6ED7BB35593,"[{\"a\":1},{\"a\":2}]"
D000C576-112C-45BE-BA0F-5DB0E8AF409E,"[{\"a\":3}]"

С миллионами строк в файле я хочу использовать только процессоры на основе записей. Я хотел бы проанализировать его с помощью следующей схемы avro:

{
  "type": "record",
  "name": "test",
  "fields": [
    {"name": "id", "type": "string"},
    {
      "name": "json_array", 
      "type": {
        "type": "array",
        "items": {
          "type": "record",
          "name": "array_item",
          "fields": [
            {"name": "a", "type": "int"}
          ]
        }
      }
    }
  ]
}

Но попытка разобрать этот файл с ConvertRecord выдает ошибку Cannot convert [[{"a":1},{"a":2}]] of type class java.lang.String to Object Array...

Я думаю, что хочу использовать процессор UpdateRecord для разбора строки как массива объектов, но я не уверен, какую функцию языка выражений или функцию пути записи использовать. Есть предложения?

...