1
votes

Can someone help me on defining jolt specification to transform input json to Output json for below json ..I have input json in a file as few json objects like {"filename":"test1","value":"10"} {"filename":"test2","value":"10"} . Transformed Output json should be like below : {"filename":"test","overallvalue":"20", "filename":[{"filename":"test1","value":"10"},{"filename":"test2","value":"10"}]}

Filename and Overall value bith I am getting some other fields so can pass as parameter to the jolt specification

1
My input JSON will be like below [ { "filename":"test1.csv", "message":"HiveSQL query executed Sucessfull!", "status":"Success" }, { "filename":"test2.csv", "message":"HiveSQL query executed Sucessfull!", "status":"Success" }, { "filename":"test3.csv", "message":"HiveSQL query executed Sucessfull!", "status":"Success" } ] - Adhish
Output JSON should be like below Output JSON should be : main_file,Overall_status,final_message will get values from flowfile attributes { "filename": "${main_file}", "ex_status": "${Overall_status}", "error": "${final_message}", "fl_status": [ { "file_name": "test1.csv.", "status": "Success", "message": "HiveSQL query executed Sucessfull!" }, { "file_name": "test2.csv", "status": "Success", "message": "HiveSQL query executed Sucessfull!" }, { "file_name": "test3.csv", "status": "failed", "message": "HiveSQL query executed Sucessfull!" } ] } - Adhish
Please update your question with the JSON and use the code formatting - Sdairs

1 Answers

1
votes

Jolt uses \\ as escape character, since the data has $ which is reserved character for jolt.

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