I have a json record that contains array "mylst":
{
    "id": 0,
    "name": "Root",
     "mylist": [{
      "id": 10,
      "info": "2am-3am"
    },
    {
        "id": 11,
        "info": "3AM-4AM"
    }
   ]
}
I tested Jolt  spec:

[



  {

    "operation": "shift",

    "spec": {

      "mylist": {

        "*": {

          "id": "mylist-&1-id",

          "info": "mylist-&1-info"

        }

      },

      "*": "&"

    }

  }

]
to transform it into "flat" version:
{
     "id": 0,
    "name": "Root",
     "mylist-0-id":10,
   " mylist-0-info":"2am-3am",
   "mylist-1-id": 11,
   "mylist-1-info": "3AM-4AM"
}
However, when I put it all together to print into the file, only "root"
properties are printed:
GetFile->JoltTransformJson
I have the following exception in Jolt:
java.lang.NullPointerException: null
        at java.util.ArrayList.addAll(ArrayList.java:581)
        at com.bazaarvoice.jolt.defaultr.Key.applyChildren(Key.java:158)
        at com.bazaarvoice.jolt.Defaultr.transform(Defaultr.java:242)
        at
org.apache.nifi.processors.standard.util.jolt.TransformUtils.transform(TransformUtils.java:30)
        at
org.apache.nifi.processors.standard.JoltTransformJSON.onTrigger(JoltTransformJSON.java:277)
        at
org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
        at
org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1165)
        at
org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:203)
        at
org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
        at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
        at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
2018-09-04 16:10:55,008 INFO [Flow Service Tasks Thread-1]
o.a.nifi.controller.StandardFlowService Saved flow controller
org.apache.nifi.controller.FlowController@4dd21cb1 // Another save pending
= false

Any idea what I do wrong?

Reply via email to