Когда мы читаем входящие данные, нам все еще нужно использовать String type(as the data is enclosed in ")
при записи данных из процессора UpdateRecord, мы можем использовать типы int/decimal
для записи выходных записей потокового файла.
1. Использование значения пути записи:
Вы можете прочитать входящие данные как String тип данных. Выходной файл потока будет иметь целочисленный тип () и с помощью процессора UpdateRecord заменить ',' на ''
Добавить новое свойство в процессор UpdateRecord как
/ сумма
substringBefore(replace(/amount,',',''),'.')
![enter image description here](https://i.stack.imgur.com/FrXdh.png)
Теперь выходной файл потока будет иметь целочисленный тип данных для поля количества.
2. Использование буквального значения:
Если мы используем буквальное значение, мы можем использовать язык выражений NiFi функции для field.value с помощью функций replace
и toNumber
, мы можем получить значение int для поле количества.
![enter image description here](https://i.stack.imgur.com/EUxEM.png)
В обоих случаях мы получим выходной файл в формате json как
[{"name":"Abc","amount":1234},{"name":"Def","amount":2222222}]
Таким же образом, если вы хотите использовать десятичный тип выходного файла потока, определите схему avro с десятичным типом и не используйте функции substringBefore и toNumber .