Interface RowReader

All Superinterfaces:
AutoCloseable, FieldAccessor, StructAccessor

public interface RowReader extends StructAccessor, AutoCloseable

Provides row-oriented iteration over a Parquet file.

A RowReader is a stateful, mutable view providing access to the current row in the iterator. The values returned by its accessors change between calls of next().

Usage example:

try (RowReader rowReader = fileReader.rowReader()) {
    while (rowReader.hasNext()) {
        rowReader.next();
        long id = rowReader.getLong("id");
        PqStruct address = rowReader.getStruct("address");
        String city = address.getString("city");
    }
}
  • Method Details

    • create

      static RowReader create(dev.hardwood.internal.reader.RowGroupIterator rowGroupIterator, FileSchema schema, ProjectedSchema projectedSchema, dev.hardwood.internal.reader.HardwoodContextImpl context, dev.hardwood.internal.predicate.ResolvedPredicate filter, long maxRows)

      Creates a RowReader for the given pipeline components.

      Selects FlatRowReader for flat schemas and NestedRowReader for nested schemas. Wraps with FilteredRowReader when a filter is present.

      Parameters:
      rowGroupIterator - initialized iterator over row groups
      schema - file schema
      projectedSchema - column projection
      context - hardwood context
      filter - resolved predicate, or null for no filtering
      maxRows - maximum rows (0 = unlimited)
    • hasNext

      boolean hasNext()
      Check if there are more rows to read.
      Returns:
      true if there are more rows available
    • next

      void next()
      Advance to the next row. Must be called before accessing row data.
      Throws:
      NoSuchElementException - if no more rows are available
    • close

      void close()
      Specified by:
      close in interface AutoCloseable