【发布时间】:2020-04-21 09:29:41
【问题描述】:
我正在遍历pd.read_sql(query, engine, chunksize=10000)的结果
我在将engine (sqlalchemy) 设置为echo=True 的情况下执行此操作,以便打印出 Pandas 用于访问数据库 (postgres) 的原始 sql 命令。
打印输出显示,Pandas 只使用我编写的查询访问数据库一次,没有进行任何修改。考虑到这一点,Pandas 怎么可能以块的形式遍历该查询的完整输出,同时又不一次将所有块存储在内存中?
【问题讨论】:
-
请发布更完整的示例。一种可能性是,它将整个数据集读入 C 中的内存,然后以较小的块将其打包到 python 中。
-
我猜它被读入 chunksize 的数据帧 - 使用 fetch - 并存储在那里直到数据完成 - 然后获取另一个块等。
标签: python pandas postgresql sqlalchemy