如何为复杂的 json 文档定义 avro 架构?



这是我的JSON的一个例子:

{"ID":2,"name":"Donatello","lastname":"Di Niccoló","age":23,"hobbies":["reading","dancing",{"sports":["rafting","baseball"]}],"address":{"street":"Tepito", "number":"77", "districts":"Benito Juárez", "country": "CDMX"}}

这是我的 AVRO 模式

{"type":"record","name":"myrecord","fields":[ 
{"name":"ID","type":"int"}, 
{"name":"name", "type": "string"},
{"name":"lastname", "type": "string"},
{"name":"age", "type": "int"},
{"name":"hobbies","type": {
"type": "array",
"items": {
"type": "array", "items": "string",
"type":"record","name":"myhobbies",
"fields":[
{"name":"sports","type":{"type": "array", "items": "string"}}
]
}       }
},
{"name":"address","type":{"type":"record","name":"myaddress",
"fields":[
{"name":"street","type":"string"},
{"name":"number","type":"string"},
{"name":"districts","type":"string"},
{"name":"country","type":"string"}
]
}
}
]}

我需要 avro 格式的 couse,我想启动一个制作人 whit kafka,但是当我启动它时,当我输入 previos 一条记录时出错。使用 avro 架构与记录不匹配。如何使它们匹配


Yeah Nitin Tripathi
{"type":"record","name":"myrecord","fields":[ 
{"name":"ID","type":"int"}, 
{"name":"name", "type": "string"},
{"name":"lastname", "type": "string"},
{"name":"age", "type": "int"},
{"name":"hobbies","type": {
"type": "array",
"items": {
"type":"record","name":"myhobbies",
"fields":[
{"name":"sports","type":{"type": "array", "items": "string"}}
]
}       }
},
{"name":"address","type":{"type":"record","name":"myaddress",
"fields":[
{"name":"street","type":"string"},
{"name":"number","type":"string"},
{"name":"districts","type":"string"},
{"name":"country","type":"string"}
]
}
}
]}

我试过了,但它不起作用:(

数组使用类型名称"array"并支持单个属性,但是,爱好的架构混合了字符串和myhobbies类型

最新更新