Could you use DataFileStream and pass in your own stream? Then you could get bytes read.
[1] https://avro.apache.org/docs/1.9.2/api/java/org/apache/avro/file/DataFileStream.html On Sat, Jul 25, 2020 at 7:42 PM Julien Phalip <[email protected]> wrote: > > Hi, > > I'd like to keep track of the number of bytes read as I'm reading through the > records of an Avro file. > > See this sample code: > > File file = new File("mydata.avro"); > DatumReader<GenericRecord> reader = new GenericDatumReader<>(); > DataFileReader<GenericRecord> fileReader = new DataFileReader<>(file, reader); > GenericRecord record = new GenericData.Record(fileReader.getSchema()); > long counter = 0; > while (fileReader.hasNext()) { > fileReader.next(record); > counter += // Magic happens here > System.out.println("Bytes read so far: " + counter); > } > > I can't seem to find a way to extract that information from the `fileReader` > or `record` objects. I figured maybe `fileReader.tell()` might help here, > but that value seems to stay stuck on the current block's position. > > Is this possible? > > Thanks! > > Julien
