gpt4 book ai didi

avro - 您可以将数据附加到现有的 Avro 数据文件中吗?

转载 作者:行者123 更新时间:2023-12-04 15:14:41 27 4
gpt4 key购买 nike

似乎没有任何方法可以将数据附加到现有的 Avro 序列化文件中。我想让多个进程写入一个 avro 文件,但看起来每次打开它时,我都会从头开始。我不想读入所有数据,然后再将其写回。

使用 ruby​​ 示例代码,我尝试了“ab”和“ab+”作为各种设置,但没有任何乐趣。

file = File.open('data.avr', 'wb')
schema = Avro::Schema.parse(SCHEMA)
writer = Avro::IO::DatumWriter.new(schema)
dw = Avro::DataFile::Writer.new(file, writer, schema)
dw << {"username" => "john", "age" => 25, "verified" => true}
dw << {"username" => "ryan", "age" => 23, "verified" => false}
dw.close

最佳答案

我确实想出了如何使用 appendTo 方法在 Java 中做到这一点:

DatumWriter writer = new ReflectDatumWriter(Record.class);
DataFileWriter file = new DataFileWriter(writer);
file.setMeta("version", 1);
file.setMeta("creator", "ThinkBigAnalytics");
file.setCodec(CodecFactory.deflateCodec(5));
//file.create(schema, new File("/tmp/records"));
file.appendTo(new File("/tmp/records"));

但是,我很乐意从 Ruby 中做到这一点。

关于avro - 您可以将数据附加到现有的 Avro 数据文件中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8806689/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com