天天看點

iceberg org.apache.iceberg.parquet.Parquet parquet file read

org.apache.iceberg.parquet.Parquet#read

public static ReadBuilder read(InputFile file) {
    return new ReadBuilder(file);
}      

org.apache.iceberg.parquet.Parquet.ReadBuilder

public static class ReadBuilder {
    // 檔案讀範圍: [start, start + length).
    private Long start = null;
    private Long length = null;
    // 檔案所屬 table 的 schema
    private Schema schema = null;
    // org.apache.iceberg.expressions.Expressions#alwaysTrue
    private Expression filter = null;
    // reader
    private Function<MessageType, ParquetValueReader<?>> readerFunc = null;
    // 大小寫敏感
    private boolean caseSensitive = true;
}      

周遊疊代器

CloseableIterable<T> iter = builder.build();
this.currentIterator = iter.iterator();
while (this.currentIterator.hasNext()) {
    RowData data = this.currentIterator.next();
    res.add(data);
}