gpt4 book ai didi

python - pandas.read_sql()中的chunksize参数如何避免将数据加载到内存中

转载 作者:行者123 更新时间:2023-12-01 04:24:14 26 4
gpt4 key购买 nike

我正在遍历 pd.read_sql(query, engine, chunksize=10000) 的结果

我正在使用 engine (sqlalchemy) 设置为 echo=True以便它打印出 Pandas 使用 db (postgres) 的原始 sql 命令。

打印输出显示,Pandas 只使用我编写的查询访问数据库一次,没有进行任何修改。考虑到这一点,Pandas 怎么可能以 block 的形式遍历该查询的完整输出,同时又不一次将所有 block 存储在内存中?

最佳答案

单个 SQL 查询使数据库知道它需要返回哪些结果。

实际上返回结果是由您的驱动程序(对于 python 可能是 psycopg2)处理的通信协议(protocol)处理的。

That protocol允许流式传输结果集。然后可以在驱动程序和/或 pandas 层对这些结果进行分 block ,而无需执行多个 SQL 语句。

关于python - pandas.read_sql()中的chunksize参数如何避免将数据加载到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59568034/

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