首页 > 解决方案 > 从 Avro 模式创建 java.util.List

问题描述

如何从此 avro 模式创建 ArrayList?

{
   "name":"family",
   "type":[
      "null",
      {
         "type":"array",
         "items":{
            "type":"record",
            "name":"Group",
            "fields":[
               {
                  "name":"name",
                  "type":[
                     "null",
                     "string"
                  ]
               },
               {
                  "name":"surname",
                  "type":[
                     "null",
                     "string"
                  ],
                  "default":null
               }
            ]
         },
         "java-class":"java.util.List"
      }
   ],
   "default":null
}

我尝试了几种方法,但收到错误:org.apache.avro.AvroRuntimeException:不是数组如果架构没有“java-class”:“java.util.List”,我可以做到:

GenericRecord member = new GenericData.Record(schema.getField("family").schema().getElementType());
member.put("name", "Gerry");
member.put("surname", "N");

GenericArray<GenericRecord> members = new GenericData.Array<>(1, schema.getField("family").schema());
members.add(member);
record.put("members", member);

标签: javaavro

解决方案


推荐阅读