Transform/round-off Nifi 中的小数

Transform/round-off decimal numbers in Nifi

我正在尝试 POST 一个 JSON 文件(使用 Apache NiFi)到一个只接受最多 10 位小数的值的应用程序。

JSON格式:

{
  "timestamp" : "2016-04-17",
  "zoom" : 13,
  "dc" : 100,
  "CloudCoverPercentage" : 74.707,
  "mean" : 0.18735192480231655,
  "num" : 127,
  "FirstQuartile" : 0.142807444773004,
  "median" : 0.17882054533925174,
  "max" : 0.32004310344827586,
  "min" : 0.059890294413970674,
  "ThirdQuartile" : 0.22603810187853218,
  "StandardDeviation" : 0.06846369990524923
}

问题:如何在 Apache Nifi 中转换每个十进制值,使其只有 10 位小数? 我在某处读到 JoltTransformJSON 可用于此目的。如何为这种操作编写 Jolt 规范?

您可以将 UpdateRecordjsonReader(推断架构)、JsonSetWriter(继承架构)

一起使用

输入:

{
  "timestamp" : "2016-04-17",
  "zoom" : 13,
  "dc" : 100,
  "CloudCoverPercentage" : 74.707,
  "mean" : 0.18735192480231655,
  "num" : 127,
  "FirstQuartile" : 0.142807444773004,
  "median" : 0.17882054533925174,
  "max" : 0.32004310344827586,
  "min" : 0.059890294413970674,
  "ThirdQuartile" : 0.22603810187853218,
  "StandardDeviation" : 0.06846369990524923
}

输出:

[ {
  "timestamp" : "2016-04-17",
  "zoom" : 13,
  "dc" : 100,
  "CloudCoverPercentage" : 74.707,
  "mean" : 0.18735192480231655,
  "num" : 127,
  "FirstQuartile" : 0.142807444773004,
  "median" : 0.1788205453,
  "max" : 0.32004310344827586,
  "min" : 0.059890294413970674,
  "ThirdQuartile" : 0.22603810187853218,
  "StandardDeviation" : 0.06846369990524923
} ]