Я пытаюсь проанализировать некоторые данные в Nifi (1.7.1) с помощью процессора UpdateRecord.Исходные данные - это файлы json, которые я хотел бы преобразовать в Avro на основе схемы.Преобразование Avro в порядке, но в этом преобразовании мне также нужно проанализировать один элемент массива из данных json в другую структуру в Avro.Это пример данных ввода json:
{ "geometry" : {
"coordinates" : [ [ 4.963087975800593, 45.76365595859971 ], [ 4.962874487781098, 45.76320922779652 ], [ 4.962815443439148, 45.763116079159374 ], [ 4.962744732112515, 45.763010484202866 ], [ 4.962096825239138, 45.762112721939246 ] ]} ...}
Является его схемой (указанной в RecordReader):
{ "type": "record",
"name": "features",
"fields": [
{
"name": "geometry",
"type": {
"type": "record",
"name": "geometry",
"fields": [
{
"name": "coordinatesJson",
"type": {
"type": "array",
"items": {
"type": "array",
"items": "double"
}
}
},
]
}
},
....
]
}
Как видите, координаты - это массив массивов.
И мне нужно проанализировать эти данные в Avro на основе этой схемы (указанной в RecordWriter):
{
"name": "outputdata",
"type": "record",
"fields": [
{"name": "coordinatesAvro",
"type": {
"type": "array",
"items" : {
"type" : "record",
"name" : "coordinatesAvro",
"fields" : [ {
"name" : "X",
"type" : "double"
}, {
"name" : "Y",
"type" : "double"
} ]
}
}
},
.....
]
}
Проблема в том, что я не могу проанализировать координатыJson дляordinatesAvro, используя функции RecordPath Я попробовал несколько отображений, таких как:
Property: Value:
/coordinatesJson[0..-1]/X /geometry/coordinatesAvro[*][0]
/coordinatesJson[0..-1]/Y /geometry/coordinatesAvro[*][1]
Это должен быть довольно простой шаг разбора, но, как я уже сказал, я собирался кругами, чтобы достичь этого некоторое время.
Любая помощь будет очень признательна.