我有一个架构,其中我有两个记录,其中字段包含彼此的元素。如何在Avro中转发声明记录,以便在定义之前使用其声明。
{
"namespace": "mytest",
"name": "Foo",
"type": "record",
"fields": [
{"name" : "bar", "type": ["null", "Bar"]}
],
"name": "Bar",
"type": "record",
"fields": [
{"name" : "foo", "type": ["null", "Foo"]}
]
}
答案 0 :(得分:2)
据我所知,你不能像你一样在模式中使用记录语句。
我认为您需要这样的架构:
{
"type": "record",
"name": "Foo",
"namespace": "q44820145",
"fields": [
{
"name": "bar",
"type": {
"type": "record",
"name": "Bar",
"fields": [
{
"name": "foo",
"type": ["null", "Foo"]
}
]
}
}
]
}