我正在尝试使用avro-tools-1.7.4.jar创建模式命令创建两个Avro模式。
我有两个JSON模式,看起来像这样:
{
"name": "TestAvro",
"type": "record",
"namespace": "com.avro.test",
"fields": [
{"name": "first", "type": "string"},
{"name": "last", "type": "string"},
{"name": "amount", "type": "double"}
]
}
{
"name": "TestArrayAvro",
"type": "record",
"namespace": "com.avro.test",
"fields": [
{"name": "date", "type": "string"},
{"name": "records", "type":
{"type":"array","items":"com.avro.test.TestAvro"}}
]
}
当我在这两个文件上运行create schema时,第一个文件可以正常工作并生成Java代码。但第二个文件每次都失败。当我尝试将第一个schema用作类型时,它不喜欢数组项。我得到的错误如下:
Exception in thread "main" org.apache.avro.SchemaParseException: Undefined name: "com.test.avro.TestAvro"
at org.apache.avro.Schema.parse(Schema.java:1052)
这两个文件都位于同一个路径目录下。