Код: Выделить всё
struct UserEntry {
int64_t user_id;
std::string user_name;
std::string user_email;
int64_t user_phn;
}
avro::ValidSchema SampleUserPhEntry() {
avro::RecordSchema schema("UserEntries");
schema.addField("user_id", avro::LongSchema());
schema.addField("user_name", avro::StringSchema());
schema.addField("user_email", avro::StringSchema());
schema.addField("user_phone", avro::LongSchema());
return avro::ValidSchema(schema);
}
< /code>
Большинство примеров, которые я вижу в репо, используют сгенерированную структуру для записи файла Avro. Есть ли способ использования своей пользовательской определенной struct для написания файла AVRO? >
int WriteUserPhEntry() {
avro::ValidSchema schema = SampleUserPhEntry();
avro::GenericDatum schema_datum(schema);
const char* file_name = "user_entries.avro";
avro::DataFileWriter writer(file_name, schema);
avro::GenericRecord& record = schema_datum.value();
record.field("user_id").value() = static_cast(64);
record.field("user_name").value() = "avro_user";
record.field("user_email").value() = "avro_user@avro.com";
record.field("user_phone").value() = 1234567890;
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79416079/how-can-i-use-avro-c-to-write-a-file-for-a-schema-that-i-defined-programatical[/url]