Not sure off hand. I thought you were just reading sequentially.
On Sun, Jul 26, 2020 at 12:15 AM Julien Phalip <[email protected]> wrote: > > Hi Jeremy, > > Thanks for your reply. I'm currently using DataFileReader because I also need > to use random access/seeks. Would that be possible with DataFileStream as > well? Or is there another technique that could work? > > Julien > > On Sat, Jul 25, 2020 at 9:36 PM Jeremy Custenborder <[email protected]> > wrote: >> >> 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
