Construir un esquema de Avro con una lista de nombres de campo y el mismo esquema

at1ll3y:

im teniendo problemas para encontrar una solución para mi problema.

Tengo que llamar al método de campo entre la estructura () y los de construcción () veces método X para crear un nuevo objeto. Es un Builder.

Schema people = SchemaBuilder.struct()
                .field("NAME", Schema.STRING_SCHEMA)
                .field("SURNAME", Schema.STRING_SCHEMA)
                .field("CITY", Schema.STRING_SCHEMA)
                .build();

Pero en mi caso, los campos del esquema de las personas no se definen desde el principio. Tienen que ser variable. Necesito algo como:

String[] values = {"NAME", "SURNAME", "CITY", "FIELD4", "FIELD5", .....};

Schema people = SchemaBuilder.struct()
          .xTimes.field(values[x], Schema.STRING_SCHEMA))
          .build();

Miré a arroyos y lambdas pero nunca trabajé con ellos y no estoy seguro de si estas podrían ser una solución para este caso. No puedo interrumpir los métodos. Todos ellos necesitan ser llamados en una fila. Es lo que estoy tratando de hacer aún posible y si es así, ¿cómo?

Gracias

EDIT: Esto es lo que he intentado, pero no funcionó:

public Schema buildSchema(String... fields){
  sch1 = SchemaBuilder.struct();
  for (int i = 0; i < fields.length; i++) {
    sch1 =SchemaBuilder.struct().field(fields[i], Schema.STRING_SCHEMA);
  }
  return sch1;
}

Esto funciona perfectamente bien, pero no se ajusta a mis necesidades:

public Schema buildSchema(){
  Schema sch1 = SchemaBuilder.struct()
    .field("foo", Schema.STRING_SCHEMA)
    .field("bar", Schema.STRING_SCHEMA)
    .field("duck", Schema.STRING_SCHEMA)
    .build();
  return sch1
}
Tiburón :
String[] values = {"NAME", "SURNAME", "CITY", "FIELD4", "FIELD5", .....};

SchemaBuilder builder = SchemaBuilder.struct();
for (int i = 0; i < values.length; i++) {
    builder = builder.field(values[i], Schema.STRING_SCHEMA)
}
Schema people = builder.build();

cómo combate algo por el estilo?

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=277986&siteId=1
Recomendado
Clasificación