Yes I made it worked with record type as well but I can't use a record
because my field names are dynamic.

In many JSON we use collections of keys that will be named at runtime. I
thought the map data type of Avro was specially designed for it ....

Any other ideas ?


On Wed, Oct 10, 2018 at 4:09 PM Bryan Bende <[email protected]> wrote:

> I was able to make it work using a nested record instead of a map....
>
> {
>     "type": "record",
>     "name": "example",
>     "fields" : [
>       {
>         "name": "field1",
>         "type": {
>           "name" : "field1",
>           "type" : "record",
>           "fields" : [
>             { "name": "toto", "type": "string" },
>             { "name": "titi", "type": "string" }
>           ]
>         }
>       }
>     ]
> }
> On Wed, Oct 10, 2018 at 10:00 AM Maxime Jattiot <[email protected]>
> wrote:
> >
> > Sure, here is the schema :
> > {
> >     "name" : "test",
> >     "type" : "record",
> >     "fields" : [ {
> >         "name" : "field1",
> >         "type" : {
> >             "type" : "map",
> >             "values" : "string"
> >         }
> >     } ]
> > }
> >
> > And here is the JSON message :
> > [{
> >     "field1": {
> >         "toto" : "v1",
> >         "titi" : "v2"
> >     }
> > }]
> >
> > On Wed, Oct 10, 2018 at 2:48 PM Bryan Bende <[email protected]> wrote:
> >
> > > Hello,
> > >
> > > The screenshots did not come through, maybe just paste the schema and
> JSON
> > > as text in the email.
> > >
> > > Thanks.
> > >
> > > On Wed, Oct 10, 2018 at 6:57 AM Maxime Jattiot <[email protected]>
> > > wrote:
> > >
> > > > Hello everyone,
> > > >
> > > > I am having hard time to validate a simple JSON message with an Avro
> > > > schema. My schema works with avro-tools but doesn't with
> ValidateRecord
> > > > processor. I wish you could help me.
> > > >
> > > >    - I am having the following debug log within Nifi :
> > > >
> > > > Record #1 is invalid due to:
> > > > MapRecord[{toto=v1, titi=v2}] is not a valid value for /field1:
> Value is
> > > > of type org.apache.nifi.serialization.record.MapRecord but was
> expected
> > > to
> > > > be of type MAP[STRING]
> > > >
> > > >
> > > >    - Here is my schema :
> > > >
> > > > [image: Screen Shot 2018-10-10 at 11.21.41.png]
> > > >
> > > >    - Here is the JSON content sent :
> > > >
> > > > [image: Screen Shot 2018-10-10 at 11.22.10.png]
> > > >
> > > > Does someone has any clue ? I have been struggling 2 days with this
> map
> > > > data type ... :(
> > > >
> > > > Thank you !
> > > >
> > > > Maxime
> > > >
> > >
>

Reply via email to