我在一个名为"some.package.SourceMetadata"
的 json 文件中定义了一个 Avro 类型commonSourceMetadata.avsc
:
{
"type": "record",
"name": "SourceMetadata",
"namespace": "some.package",
"fields": [..]
}
我正在尝试在另一个 avsc 文件中使用它,使用imports
我在以下位置找到的关键字Apache Avro 1.7.3
:
"imports": ["commonSourceMetadata.avsc"],
"fields": [
{
"name": "sourceMetadata",
"type": "some.package.SourceMetadata"
},
我也试过:
"fields": [
{
"name": "sourceMetadata",
"imports": ["commonSourceMetadata.avsc"],
"type": "some.package.SourceMetadata"
},
Apache Avro
版本1.9
是.
我仍然得到:
org.apache.avro.SchemaParseException: "some.package.SourceMetadata" is not a defined name. The type of the "sourceMetadata" field must be a defined name or a {"type": ...} expression.
at org.apache.avro.Schema.parse(Schema.java:1637)
我也很清楚,它没有考虑到imports
或者import
因为我试图导入一个不存在的文件并且没有抱怨。
我怎样才能使它成为一个defined name
?
我们使用 Scala、SBT 和 AvroHugger 插件从 avsc Avro 类型定义生成 Scala 案例类。