В настоящее время я получаю некоторые данные в формате 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
для разбора строки как массива объектов, но я не уверен, какую функцию языка выражений или функцию пути записи использовать. Есть предложения?