@julienledem I think what you are asking is why can't they be top level objects? 

You're right that they could be list (key, value), however this is the case where someone does this: 

ParquetPojoOutputFormat.setSchemaClass(job, List.class);

Since it's not a field, I don't have access to the type information and can't generate a schema for it (I think).  I could probably use a better error message for that.