当前位置: 首页 > 知识库问答 >
问题:

在Apache NiFi中对JSON Jolt中concat的支持

闾丘选
2023-03-14

使用Apache NiFi,我希望在JSON流文件中的所有元素中添加一个新字段,该字段基于两个其他字段的串联。我试图使用JoltTransformJSON处理器来处理这个问题,但是,我想使用的Jolt转换可以使用在线工具,但在NIFI中不起作用。我怀疑是版本问题,但我的Jolt规范可能有一些愚蠢的地方。

输入JSON如下所示...

[
  {
    "id": 485842,
    "cc": 1,
    "x": 0,
    "y": null
  },
  {
    "id": 281733,
    "cc": 1,
    "x": 0,
    "y": 10
  },
  {
    "id": 721412,
    "cc": 12,
    "x": 0,
    "y": null
  }
]
[ {
  "id" : 485842,
  "cc" : 1,
  "x" : 0,
  "y" : null,
  "id_cc" : "485842_1"
}, {
  "id" : 281733,
  "cc" : 1,
  "x" : 0,
  "y" : 10,
  "id_cc" : "281733_1"
}, {
  "id" : 721412,
  "cc" : 12,
  "x" : 0,
  "y" : null,
  "id_cc" : "721412_12"
} ]
[{
  "operation": "modify-default-beta",
  "spec": {
    "*": {
      "id_cc": "=concat(@(1,id),'_',@(1,cc))"
    }
  }
}]
{
    "operation": "modify-default",
    "spec": {
      "*": {
        "id_cc": "=concat(@(1,id),'_',@(1,cc))"
      }
    }
}
"operation": "modify-default"

提前感谢您的指点。

共有1个答案

卫弘懿
2023-03-14

经过同事们的一些帮助,我找到了一个让这个工作的方法。

首先,将JoltTransformJSON处理器的Jolt TransformJSON属性设置为Chain

其次,将Jolt规范设置为以下...

[{
    "operation": "modify-default-beta",
    "spec": {
      "*": {
        "id_cc": "=concat(@(1,id),'_',@(1,cc))"
      }
    }
}]

得到所有这些正确的,预期的输出将产生。

 类似资料:
  • 问题内容: Oracle 11g是否支持JSON?我的意思是像在PL / SQL查询中处理JSON对象之类的东西。我知道Oralcle 12c支持这些东西,但是11g似乎没有。 我主要关心的是,是否有可能在PL / SQL代码中处理从RESTfull API调用(使用包)返回的JSON对象。 这就是我所说的RESTfull API: 然后需要以某种方式将还原的JSON数据保存在表中。我的Oracl

  • 问题内容: 如果我在MySQL中有一个包含以下数据的表: 如何将其转换为以下格式? 我想我必须使用。但是我不确定它是如何工作的。 问题答案: 您可以在此处看到它的实现: Sql Fiddle演示 。正是您所需要的。 *分两步 *更新 拆分。首先,我们得到一个表,该表具有一个唯一值[Name,id]的所有值(用逗号分隔)。然后从获得的表中,将所有名称和值作为针对每个唯一id的单个值获得。请参见 SQ

  • 问题内容: 我需要用逗号分隔的ID列表作为杂乱的第三方api的字段:s这是我要实现的功能的简化版本。 归来 我知道MySQL具有CONCAT_GROUP函数,并且由于环境原因,我希望解决此问题而不安装更多函数。也许我可以使用OVER语句解决此问题? 问题答案: 从长远来看,最简单的方法是使用可在github上找到的官方Vertica UDF之一,网址为https://github.com/vert

  • 本文向大家介绍Java中的IntStream concat()方法,包括了Java中的IntStream concat()方法的使用技巧和注意事项,需要的朋友参考一下 Java IntStream类中的方法形成一个串联流。此流的元素是第一个流的所有元素,后跟第二个流的所有元素。 语法如下- 在这里,参数一个是第一流,而两个是第二流。该方法返回流一和二的连接结果。 让我们创建两个IntStream并

  • 按照 Dreamweaver 中对 HTML5 的持续支持,为某些表单元素引进了新属性。此外,还引进了四个新的 HTML5 表单元素。 可以在“插入”面板中找到表单元素。选择“窗口”>“插入”。在“插入”面板菜单中,选择“表单”。 Dreamweaver 中的“修订表单”工作流程Dreamweaver 中的“修订表单”工作流程Dreamweaver 12.1 更新中的“修订表单”工作流程。Davi