【问题标题】:Nifi jolt transformation to transform input jsonNifi 颠簸转换以转换输入 json
【发布时间】:2021-04-15 09:54:18
【问题描述】:

有人可以帮助我定义 jolt 规范以将输入 json 转换为输出 json 以用于以下 json ..我在文件中输入 json 作为少数 json 对象,例如 {"filename":"test1","value":"10 "} {"filename":"test2","value":"10"} 。转换后的输出 json 应该如下所示: {"filename":"test","overallvalue":"20", "filename":[{"filename":"test1","value":"10"},{"文件名":"test2","值":"10"}]}

文件名和总值比我得到一些其他字段,因此可以作为参数传递给 jolt 规范

【问题讨论】:

  • 我的输入 JSON 将如下所示 [ { "filename":"test1.csv", "message":"HiveSQL 查询执行成功!", "status":"Success" }, { " filename":"test2.csv", "message":"HiveSQL 查询执行成功!", "status":"Success" }, { "filename":"test3.csv", "message":"HiveSQL 查询执行成功!", "status":"成功" } ]
  • 输出 JSON 应该如下 输出 JSON 应该是: main_file,Overall_status,final_message 将从流文件属性中获取值 { "filename": "${main_file}", "ex_status": "${Overall_status }", "error": "${final_message}", "fl_status": [ { "file_name": "test1.csv.", "status": "Success", "message": "HiveSQL 查询执行成功!" }, { "file_name": "test2.csv", "status": "Success", "message": "HiveSQL 查询执行成功!" }, { "file_name": "test3.csv", "status": "failed", "message": "HiveSQL 查询执行成功!" } ] }
  • 请使用 JSON 更新您的问题并使用代码格式

标签: apache-nifi jolt


【解决方案1】:

Jolt 使用 \\ 作为转义字符,因为数据有 $ 是 jolt 的保留字符。

[
  {
    "operation": "shift",
    "spec": {
      "#\\${main_file}": "filename",
      "#\\${Overall_status}": "ex_status",
      "#\\${final_message}": "error",
      "*": "fl_status"
    }
  }
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多