gpt4 book ai didi

c++ - 读取部分 Parquet 文件

转载 作者:行者123 更新时间:2023-11-30 04:48:14 36 4
gpt4 key购买 nike

我有一个 Parquet 文件,我不想将整个文件读入内存。我想读取元数据,然后按需读取文件的其余部分。也就是说,例如,我想阅读第三行组中第一列的第二页。我将如何使用 Apache Parquet cpp 库来做到这一点?我有我想从元数据中读取的部分的偏移量,可以直接从磁盘读取它。有什么方法可以将该缓冲区传递给 Apache Parquet 库以解压缩、解码和迭代这些值?对于列 block 或行组来说,同样的事情怎么样?基本上,我想部分读取文件,然后将其传递给 parquet API 进行处理,而不是将文件处理程序提供给 API 并让它通过文件。可能吗?

最佳答案

在幕后,这就是 Apache Parquet C++ 库实际执行的操作。当你传入一个文件句柄时,它只会读取它需要的部分。因为它需要文件页脚(主要元数据)来知道在哪里可以找到数据段,所以这将始终被读取。数据段只有在您提出请求后才会被读取。

无需为此编写特殊代码,库中已经内置了它。因此,如果你想详细了解它是如何工作的,你只需要阅读库的源代码:https://github.com/apache/arrow/tree/master/cpp/src/parquet

关于c++ - 读取部分 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55932303/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com