我有多个.avsc
个文件,需要某种类型,比如foo
:
{ "type":"fixed","size":16, "name": "foo"}
的示例:
a.avsc:
{
"type": "record",
"name": "A",
"fields": [
{
"name": "id",
"type": ["null", "foo"],
},
{
"name": "name",
"type": "string",
}
]
}
b.avsc:
{
"type": "record",
"name": "B",
"fields": [
{
"name": "id",
"type": ["null", "foo"],
},
{
"name": "size",
"type": "int",
}
]
}
问题在于,如果我将foo.avsc放在一个单独的文件中(或者放在这两个文件中的任何一个),avroCodeGen工具需要确保首先处理它(可能吗?怎么样?)否则我得到{{ 1}}如果我每次需要时都定义它,如下所示,我得到Exception in thread "main" org.apache.avro.SchemaParseException: Undefined name: "foo"
Exception in thread "main" org.apache.avro.SchemaParseException: Can't redefine: foo
这有什么解决方法吗? (实际记录超过两个,而且复杂得多,因此不幸的是将所有内容放在一个文件中。)
p.s:我正在使用这两个库:
{
"type": "record",
"name": "B",
"fields": [
{
"name": "id",
"type": ["null", { "type":"fixed","size":16, "name": "foo"}],
},
{
"name": "size",
"type": "int",
}
]
}
{
"type": "record",
"name": "A",
"fields": [
{
"name": "id",
"type": ["null", { "type":"fixed","size":16, "name": "foo"}],
},
{
"name": "name",
"type": "string",
}
]
}
和"org.apache.avro:avro:1.7.7"