gpt4 book ai didi

python - Pandas 使用 read_sql_table 占用过多内存

转载 作者:太空宇宙 更新时间:2023-11-03 10:55:44 25 4
gpt4 key购买 nike

我正在尝试将我的 Postgres 数据库中的表格读入 Python。表大约有 800 万行和 17 列,在数据库中的大小为 622MB。

我可以使用 psql 将整个表导出到 csv,然后使用 pd.read_csv() 将其读入。它工作得很好。 Python 进程只使用大约 1GB 的内存,一切都很好。

现在,我们需要完成的任务需要这个拉取自动化,所以我想我可以直接从数据库中使用 pd.read_sql_table() 读取表。使用以下代码

import sqlalchemy
engine = sqlalchemy.create_engine("postgresql://username:password@hostname:5432/db")
the_frame = pd.read_sql_table(table_name='table_name', con=engine,schema='schemaname')

这种方法开始使用大量内存。当我使用任务管理器跟踪内存使用情况时,我可以看到 Python 进程内存使用情况不断攀升,直到它一路上升到 16GB 并卡住计算机。

任何关于为什么会发生这种情况的想法都将受到赞赏。

最佳答案

您需要设置 chunksize 参数,以便 pandas 迭代较小的数据 block 。看到这个帖子:https://stackoverflow.com/a/31839639/3707607

关于python - Pandas 使用 read_sql_table 占用过多内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41253326/

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