我有一堆AVRO文件,我使用GZip在外部压缩。 我试图在没有解压缩它们的情况下在Ruby中读取它们,但是无法使它工作。
答案 0 :(得分:1)
解决了它:
require 'avro'
def open_avro(file)
if file =~ /avro$/
Avro::DataFile.open(file)
elsif file =~ /avro\.gz$/
begin
$/ = ""
file = Zlib::GzipReader.open(file)
reader = Avro::IO::DatumReader.new(file, nil)
file.rewind # we need to rewind because DatumReader seeked thefile
avro = Avro::DataFile::Reader.new(StringIO.new(file.gets), reader)
end
return avro
end
end