Matt,

Thanks. It is a pretty similar case. On a related note, is there a good way
to specify multiple date format options on the same record field? We could
have up to half a dozen for some of them, I think.

On Mon, Dec 3, 2018 at 12:29 PM Matt Burgess <[email protected]> wrote:

> Mike,
>
> I'm looking into whether this is possible with UpdateRecord or not.
> For the article you mentioned, the OP wanted to nest values into a
> record that didn't exist in the input. Not sure if that's technically
> the same as your case but could be.
>
> In the meantime this Jolt spec should work with JoltTransformRecord
> (you can go directly from CSV to nested JSON without having to convert
> first):
>
> [
>   {
>     "operation": "shift",
>     "spec": {
>       "*": "user.&"
>     }
>   }
> ]
>
> Regards,
> Matt
>
> On Mon, Dec 3, 2018 at 11:37 AM Mike Thomsen <[email protected]>
> wrote:
> >
> > Looks like I missed this:
> >
> >
> https://community.hortonworks.com/questions/212877/want-to-convert-csv-to-nested-json-using-nifi.html
> >
> > I'll get crackin on Jolt since that seems to be the best answer at the
> moment.
> >
> > On Mon, Dec 3, 2018 at 11:24 AM Mike Thomsen <[email protected]>
> wrote:
> >>
> >> We have a need to be able to take a CSV file and convert it into a
> nested JSON structure. I did a simple test with GenerateFlowFile and a few
> ConvertRecord processors. Test was:
> >>
> >> GenerateFlowFile (JSON) -> ConvertRecord (JSON in, CSV out) ->
> ConvertRecord (CSV in, JSON out) and it threw an exception in the last
> ConvertRecord when it went from something that looked like this:
> >>
> >> user
> >> "MapRecord[{name=Test User, [email protected]}]"
> >>
> >> Sample data and schema:
> >>
> >> {
> >>     "user": {
> >>         "name": "Test User",
> >>         "email": "[email protected]"
> >>     }
> >> }
> >>
> >> {
> >>     "type": "record",
> >>     "name": "User",
> >>     "fields": [
> >>         {
> >>             "name": "user",
> >>             "type": {
> >>                 "name": "UserDetails",
> >>                 "type": "record",
> >>                 "fields": [
> >>                     {
> >>                         "name": "name",
> >>                         "type": "string"
> >>                     },
> >>                     {
> >>                         "name": "email",
> >>                         "type": "string"
> >>                     }
> >>                 ]
> >>             }
> >>         }
> >>     ]
> >> }
> >>
> >> Any ideas on how to do this? I honestly don't recall every seeing
> anyone try to do this, and understand if the Record API needs a ticket or
> two to make it happen. Just need to know if I'm missing something.
> >>
> >> Thanks,
> >>
> >> Mike
>

Reply via email to