首页 > 解决方案 > 在 Nifi 中转换/舍入十进制数

问题描述

我正在尝试将 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 Spec?

标签: jsonapache-nifi

解决方案


您可以使用UpdateRecord( jsonReaderInfer Schema), JsonSetWriter(Inherit Schema)

输入:

{
  "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
} ]

在此处输入图像描述


推荐阅读