Nifi从getHbase结果中获取特定的列值

时间:2019-11-13 11:45:35

标签: json hbase apache-nifi

我正在尝试使用GetHBase进程从Hbase提取数据,结果如下

{
  "row" : "r5",
  "cells" : {
    "cf1:ABC:" : "V1",
    "cf1:DEF" : "V2",
    "cf1:HIJ" : "V3",
    "cf1:KLM" : "V4"
  }
}

现在,我想为特定列过滤json

预期结果 {"DEF":"V2","KLM":"V4"}

尝试过流

GetHbase-> EvaluationJsonPath

1 个答案:

答案 0 :(得分:0)

只需使用JoltTransformJSON,将Jolt Transformation DSL设置为Shift,并将Jolt Specification设置为:

{
      "cells": {
        "cf1:DEF": "DEF",
        "cf1:KLM": "KLM"
      }
}

这会将您输入的json转换为所需的json。

Jolt Transform是一个开源库,可以帮助您使用其他Json文档作为规范来转换Json文档。

如果您想对它们进行参数化,可以像下面这样使用NiFi 1.10.0使用参数:

{
      "cells": {
        "cf1:#{param1}": "#{param1}",
        "cf1:#{param2}": "#{param2}"
      }
}

或者将NiFi 1.4.0+与expression languagevariable registry结合使用,如下所示:

{
      "cells": {
        "cf1:${param1}": "${param1}",
        "cf1:${param2}": "${param2}"
      }
}

所有内容都链接到文档,因此您可以阅读全部内容:)