See https://github.com/hyparam/hightable/blob/master/src/helpers/dataframe/types.ts
We would have to:
- handle the cache (maybe with LRU eviction)
- logic to estimate where (byte range) to look for a given row
- allow passing a function
fn(row) => rowNumber (rowNumber = row number, sorted from 0 to N-1) and use it with a bisection algorithm to fetch the expected row, by trying to fetch ranges until narrowing to the expected row.
See https://github.com/hyparam/hightable/blob/master/src/helpers/dataframe/types.ts
We would have to:
fn(row) => rowNumber(rowNumber = row number, sorted from 0 to N-1) and use it with a bisection algorithm to fetch the expected row, by trying to fetch ranges until narrowing to the expected row.