【发布时间】:2020-11-10 07:49:50
【问题描述】:
我正在使用 Parquet.Net 读取 parquet 文件,但从 parquet 文件中读取的唯一选项是。
//get the first group
Parquet.ParquetRowGroupReader rowGroup = myParquet.OpenRowGroupReader(0);
//gets the first column
Parquet.Data.DataColumn col1 = rowGroup.ReadColumn(myParquet.Schema.GetDataFields()[0]);
这允许我从第一个 rowGroup 中获取第一列,但问题是,第一个 rowGroup 可能是 400 万行,而 readColumn 将读取所有 400 万个值。
我如何告诉 readColumn 我只希望它读取,比如前 100 行。读取全部 400 万行会浪费内存和文件读取时间。
我实际上遇到了内存错误,直到我更改代码以将 400 万值数组的大小调整为我的 100。在调用每一列之后。
我不一定需要基于行的访问,我可以使用列,我只是不需要每列中的整个 rowGroup 值。这可能吗?如果基于行的访问更好,如何使用它? Parquet.Net 项目网站没有给出任何示例,只是谈论表格。
【问题讨论】:
标签: c# dataframe datatables bigdata parquet