首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中读取Parquet文件的内存最少的方法是什么?一条龙有可能吗?

在Python中读取Parquet文件的内存最少的方法是什么?一条龙有可能吗?
EN

Stack Overflow用户
提问于 2022-08-04 21:46:04
回答 1查看 324关注 0票数 1

我正在编写一个lambda来读取存储在Parquet文件中的记录,将它们重组为partition_key: {json_record}格式,并将记录提交到Kafka队列中。我想知道,如果不立即将整个表读入内存中,是否有任何方法可以做到这一点。

我尝试使用来自iter_row_groups库的fastparquet方法,但是我的记录只有一行组,所以我仍然将整个表加载到内存中。我注意到来自pyarrowpyarrow有一个readlines方法,但是它没有实现。是真的逐行阅读是不可能的吗?

可能值得指出的是,我正在处理存储在S3中的Parquet文件,因此理想情况下,解决方案应该能够在StreamingBody中读取

EN

回答 1

Stack Overflow用户

发布于 2022-08-09 14:21:24

我建议你看看DuckDB和polars:

https://duckdb.org/2021/06/25/querying-parquet.html

  • DuckDB DuckDB

当然,可以将查询限制在前1000名结果上。如果您得到了一些行索引,用duckdb迭代整个地板,并选择应该容易的位置。

https://pola-rs.github.io/polars/py-polars/html/reference/api/polars.scan_parquet.html

你可以用row_count_name和row_count_offset做实验。同样,使用现有的行索引列,将行作为块读取是可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73242502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档