java - 从 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);
解决方案
推荐阅读
- laravel - 在 laravel 中分页急切加载
- javascript - 在 Tampermonkey 脚本中将 HTML 插入到 div
- java - java中可抛出和错误之间的区别?
- javascript - JS DataTable添加导出按钮不显示
- go - 乘以正 int8s 并转换为 uint32 后溢出
- tableau-desktop - 如何在计算中考虑多个度量值
- linux - 从自动字符串 bash 脚本中删除前缀
- c# - 使用带有自动映射器的 CreateMap 时访问列表的属性
- javascript - setstate后如何调度
- python - 我无法在 python 中使用 selenium 在 Chrome 中打开特定的配置文件