I'm trying to translate a schema that I have in Spark which is defined for Parquet, and I would like to use it within Avro too.
StructField("one_level", StructType(List(StructField( "inner_level", MapType( StringType, StructType( List( StructField("field1", StringType), StructField("field2", ArrayType(StringType)) ) ) ) ) )), nullable = false) However, in Avro I haven't seen any examples of Maps containing Record type objects... Tried a sample input with an online Avro schema generator, taking this input. { "one_level": { "inner_level": { "sample1": { "field1": "sample", "field2": ["a", "b"], }, "sample2": { "field1": "sample2", "field2": ["a", "b"] } } } } It prompts this output. { "name": "MyClass", "type": "record", "namespace": "com.acme.avro", "fields": [ { "name": "one_level", "type": { "name": "one_level", "type": "record", "fields": [ { "name": "inner_level", "type": { "name": "inner_level", "type": "record", "fields": [ { "name": "sample1", "type": { "name": "sample1", "type": "record", "fields": [ { "name": "field1", "type": "string" }, { "name": "field2", "type": { "type": "array", "items": "string" } } ] } }, { "name": "sample2", "type": { "name": "sample2", "type": "record", "fields": [ { "name": "field1", "type": "string" }, { "name": "field2", "type": { "type": "array", "items": "string" } } ] } } ] } } ] } } ] } Which isn't absolutely what I'm looking for. Is it possible to define such schema in Avro?