我正在使用 Parquet.Net 读取镶木地板文件,但从镶木地板文件中读取的唯一选项是。
//get the first group
Parquet.ParquetRowGroupReader rowGroup = myParquet.OpenRowGroupReader(0);
//gets the first column
Parquet.Data.DataColumn col1 = rowGroup.ReadColumn(myParquet.Schema.GetDataFields()[0]);
Run Code Online (Sandbox Code Playgroud)
这允许我从第一个 rowGroup 获取第一列,但问题是,第一个 rowGroup 可能有 400 万行,而 readColumn 将读取所有 400 万个值。
我如何告诉 readColumn 我只希望它读取前 100 行。读取全部 400 万行会浪费内存和文件读取时间。
实际上,我遇到了内存错误,直到我更改了代码,将 400 万个值数组的大小调整为 100。在调用每一列之后。
我不一定需要基于行的访问,我可以使用列,我只是不需要每列中包含整个 rowGroup 的值。这可能吗?如果基于行的访问更好,那么如何使用它?Parquet.Net 项目站点没有给出任何示例,仅讨论表格。