java - ¿Cómo crear un esquema que contenga una lista de objetos usando Avro?
schema (2)
Debe utilizar el tipo de array para crear la lista. A continuación se muestra el esquema actualizado que maneja su caso de uso.
{
"name": "Parent",
"type":"record",
"fields":[
{
"name":"children",
"type":{
"type": "array",
"items":{
"name":"Child",
"type":"record",
"fields":[
{"name":"name", "type":"string"}
]
}
}
}
]
}
¿Alguien sabe cómo crear un esquema de Avro que contenga una lista de objetos de alguna clase?
Quiero que mis clases generadas se vean a continuación:
class Child {
String name;
}
class Parent {
list<Child> children;
}
Para esto, he escrito parte del archivo de esquema pero no sé cómo decirle a Avro que cree una lista de objetos del tipo Children
.
Mi archivo de esquema se ve a continuación:
{
"name": "Parent",
"type":"record",
"fields":[
{
"name":"children",
"type":{
"name":"Child",
"type":"record",
"fields":[
{"name":"name", "type":"string"}
]
}
}
]
}
Ahora, el problema es que puedo marcar los campos de children
como tipo de Child
o matriz, pero no sé cómo marcarlos como una array of objects of type Child
Clase de array of objects of type Child
?
Alguien puede ayudarme porfavor?
Tuve la siguiente clase y el complemento Avro Maven generó dos clases en consecuencia:
public class Employees{
String accountNumber;
String address;
List<Account> accountList;
}
public class Account {
String accountNumber;
String id;
}
Formato de archivo avro:
{
"type": "record",
"namespace": "com.mypackage",
"name": "AccountEvent",
"fields": [
{
"name": "accountNumber",
"type": "string"
},
{
"name": "address",
"type": "string"
},
{
"name": "accountList",
"type": {
"type": "array",
"items":{
"name": "Account",
"type": "record",
"fields":[
{ "name": "accountNumber",
"type": "string"
},
{ "name": "id",
"type": "string"
}
]
}
}
}
]
}