Нифи: Могу ли я сделать математические операции над значениями файла JSON? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть файл JSON в качестве входных данных для процессора. Примерно так:

{"x" : 10, "y" : 5}

Можно ли выполнять математические операции над этими значениями вместо написания собственного процессора? Мне нужно сделать что-то вроде

( x / y ) * 3

^ Просто пример.

Мне нужно сохранить результат в выходной файл.

UPDATE: Это мой текст в процессоре generateFlowFile:

X|Y
1|123
2|111

А это моя схема AVRO:

{
 "name": "myschema",
 "namespace": "nifi",
 "type": "record",
 "fields": [
 {"name": "X" , "type": "int"},
 {"name": "Y" , "type": "int"} ]
}

Когда я изменяю вышеперечисленные типы на строку, она работает нормально, но я не могу выполнять математические операции над строкой.

К вашему сведению, я выбрал «Использовать свойство имени схемы» в Стратегии доступа к схеме

1 Ответ

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

Использовать QueryRecord процессор.

  • Настроить / включить Записывающее / записывающее устройство Службы контроллера
  • Определить схему Avro для read входящего Json.
  • Определить схему Avro для write результаты запроса в нужном формате.

Добавить новое свойство в обработчике записи запроса как

1020 * SQL *

select  ( x / y ) * 3 as div from FLOWFILE

Выходной файл потока из процессора записей запросов будет в настроенном формате Record Writer.

...