我确实有这样的身体 -
{
{
"name":"abc",
"eventName": "abc",
"pl": {
"name": "xyz",
"age": 21,
"address": {
"line1" : "h.no - ",
"line2": "state"
}
}
}
}
任何人都可以帮我为这种身体创建一个有效的Avro架构。 我找到了一个创建嵌套模式的例子 -
[
{
"type": "record",
"name": "Address",
"fields": [
{
"name": "streetaddress",
"type": "string"
},
{
"name": "city",
"type": "string"
}
]
},
{
"type": "record",
"name": "person",
"fields": [
{
"name": "firstname",
"type": "string"
},
{
"name": "lastname",
"type": "string"
},
{
"name": "address",
"type": "Address"
}
]
} ]
当我提供这种模式时,它在下面的行中提供了错误 -
GenericRecord avroRecord = new GenericData.Record(schema);
错误是 - org.apache.avro.AvroRuntimeException:不是记录架构:
答案 0 :(得分:0)
您可以像这样定义记录以支持嵌套对象。
{
"type": "record",
"name": "person",
"fields": [{
"name": "firstname",
"type": "string"
}, {
"name": "lastname",
"type": "string"
}, {
"name": "address",
"type": {
"type": "record",
"name": "Address",
"fields": [{
"name": "streetaddress",
"type": "string"
}, {
"name": "city",
"type": "string"
}
]
}
}
]
}