从GCS存储桶读取大型Avro文件会导致内存不足异常

时间:2020-06-25 17:55:26

标签: java google-cloud-platform avro blobstore google-cloud-sdk

我正在尝试从GCS存储桶存储中读取大型avro文件。该文件约为7gb。我正在使用下面的Java代码来读取文件并进行处理。

com.google.cloud.storage.Blob blob ; //avro file in GCS 
SeekableByteArrayInput input = new SeekableByteArrayInput(blob.getContent()); //throws memory exception
        DatumReader<GenericRecord> datumReader = new GenericDatumReader();
        DataFileReader<GenericRecord> dataFileReader= new DataFileReader(input, datumReader);
        while (dataFileReader.hasNext()) {
          //logic to process each record in avro file
        }

当我使用blob.getContent()时,程序抛出内存不足异常。我尝试使用-Xms -Xmx选项来增加内存。但这没有用。有什么更好的方法来加载大型avro文件的内容

0 个答案:

没有答案