Pandas 使用 read_sql_table 使用过多内存

2023-11-23

我正在尝试将 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 迭代较小的数据块。参见这篇文章:https://stackoverflow.com/a/31839639/3707607

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 使用 read_sql_table 使用过多内存 的相关文章

  • 如何在 Python 2.4 CSV 阅读器中禁用引用?

    我正在编写一个 Python 实用程序 需要解析一个我无法控制的大型且定期更新的 CSV 文件 该实用程序必须在仅提供 Python 2 4 的服务器上运行 CSV 文件根本不引用字段值 但Python 2 4版本的csv库 http ww
  • Python实时读取串口数据

    我正在使用 Python 中的脚本通过串行端口以 2Mbps 的速度从 PIC 微控制器收集数据 PIC 在 2Mbps 下完美定时工作 FTDI USB 串行端口在 2Mbps 下工作也很好 均通过示波器验证 我每秒发送消息 大小约为 1
  • python中嵌套字典值的总和

    我有一本这样的字典 data 11L a 2 b 1 a 2 b 3 22L a 3 b 2 a 2 b 5 a 4 b 2 a 1 b 5 a 1 b 0 33L a 1 b 2 a 3 b 5 a 5 b 2 a 1 b 3 a 1 b
  • 从备份恢复 PostgreSQL 数据库,没有外键约束问题

    我有一个包含大约 85 个以上表的 postgresql 数据库 我定期使用pg dump 通过 php pgadmin 在复制模式下 备份文件的大小几乎为 10 12 MB 现在我面临的问题是 每当我尝试恢复数据库时 都会出现外键约束问题
  • Python 中嵌套列表的排序和分组

    我有以下数据结构 列表的列表 4 21 1 14 2008 10 24 15 42 58 3 22 4 2somename 2008 10 24 15 22 03 5 21 3 19 2008 10 24 15 45 45 6 21 1 1
  • 手动安装开放多语言世界网 (NLTK)

    我正在使用一台只能访问专用网络并且无法从命令行发送指令的计算机 因此 每当我必须安装 Python 包时 我都必须手动安装 我什至不能使用 Pypi 幸运的是 NLTK 允许我手动下载语料库 从here https www nltk org
  • 如何使用appium自动化Android手机后退按钮

    我正在使用 Appium python 客户端库 对 Android 上的混合移动应用程序进行测试自动化 我无法找到任何方法来自动化或创建手势以使用 电话后退 按钮返回到应用程序的上一页 有没有可以使用的驱动函数 我尝试了 self dri
  • Pygooglevoice登录错误

    另一个人问了这个问题 但没有回复 所以我再问一遍 我正在尝试使用 pygooglevoice API 但是当我运行 SMS py 示例脚本时 它给了我一个登录错误 我已经安装了 Enthought python 我想也许我还需要安装其他东西
  • 完全定制的Python帮助用法

    我正在尝试使用 Python 创建完全自定义的 帮助 用法 我计划将其导入到许多我想要具有风格一致性的程序中 但遇到了一些麻烦 我不知道为什么我的描述忽略换行符 尝试过 和 我无法让 出现在 ARGS 行的 换行符之后 显然它们坐在自己的行
  • Django Rest Framework 序列化器中的聚合(和其他带注释的)字段

    我正在尝试找出添加带注释字段的最佳方法 例如将任何聚合 计算 字段添加到 DRF 模型 序列化器 我的用例只是一种情况 端点返回的字段未存储在数据库中 而是从数据库计算得出 让我们看下面的例子 模型 py class IceCreamCom
  • t /= d 是什么意思? Python 和错误

    t current time b begInnIng value c change In value d duration def easeOutQuad swing function x t b c d alert jQuery easi
  • 模拟类:Mock() 还是 patch()?

    我在用mock http www voidspace org uk python mock index html使用Python 想知道这两种方法中哪一种更好 阅读 更Pythonic 方法一 只需创建一个模拟对象并使用它 代码如下 def
  • 尝试将 cuda 与 pytorch 一起使用时出现运行时错误 999

    我为我的 Geforce 2080 ti 安装了 Cuda 10 1 和最新的 Nvidia 驱动程序 我尝试运行一个基本脚本来测试 pytorch 是否正常工作 但出现以下错误 RuntimeError cuda runtime erro
  • 如何连接多个字符串? [复制]

    这个问题在这里已经有答案了 如何将 stringList 中的所有字符串合并为一个而不打印它 例如 s joinStrings very hot day returns string print s Veryhotday 感觉有点倒退 但是
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 返回吃异常

    我至少发现了以下行为weird def errors try ErrorErrorError finally return 10 print errors prints 10 It should raise NameError name E
  • Python 包安装:pip 与 yum,还是两者一起安装?

    我刚刚开始管理 Hadoop 集群 我们使用 Bright Cluster Manager 直至操作系统级别 CentOS 7 1 然后使用 Ambari 以及适用于 Hadoop 的 Hortonworks HDP 2 3 我不断收到安装
  • PyMC3 和 Theano - 导入 pymc3 后,有效的 Theano 代码停止工作

    一些简单的 theano 代码可以完美运行 当我导入 pymc3 时停止工作 这里有一些片段可以重现错误 Initial Theano Code this works import theano tensor as tsr x tsr ds
  • 如何继承并重写 django 模型类来创建 listOfStringsField?

    我想为 django 模型创建一个新类型的字段 它基本上是一个 ListOfStrings 因此 在您的模型代码中 您将具有以下内容 模型 py from django db import models class ListOfString
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但

随机推荐

  • R,将多行文本数据框合并到一个单元格中

    我有一个如下所示的文本数据框 gt nrow gettext df 1 3 gt gettext df gettext 1 hello 2 Good to hear back from you 3 I ve currently writte
  • git github无法推送到原点

    我可能遗漏了一些东西 但我确信我已经检查了所有内容 我分叉了一个存储库并将其克隆到我的系统上 做了一些改变 提交后 做过git push origin master it says fatal remote error You can t
  • 如何让AngularJS编译指令生成的代码?

    请帮助我 我们如何让 AngularJS 编译指令生成的代码 您甚至可以在这里找到相同的代码 http jsbin com obuqip 4 edit HTML div names 0 names 1 br div
  • 异常 android.support.multidex.MultiDexApplication 无法转换类

    我有一个问题 我的应用程序生成此异常 但我不明白 我已经在 build gradle 中实现了 multiDexEnabled Caused by java lang ClassCastException android support m
  • 将 Log4j 输出写入 HDFS

    有没有人尝试过write log4j日志档案直接地to Hadoop分布式文件系统 如果是 请回复如何实现这一点 我想我必须为它创建一个Appender 是这样吗 我的需要是以特定的时间间隔将日志写入文件 并在稍后阶段查询该数据 我建议使用
  • 从 C# 中的字符串文件路径中删除多余的反斜杠“\”

    如何转换 String path C Abc Omg Why Me into String path C Abc Omg Why Me 我的做法是首先reverse the string进而移除所有 the 直到我们得到first char
  • IntelliJ Idea 中无副作用方法的未使用结果的警告

    当我不分配结果时BigDecimal divide 方法到变量时 我从 IntelliJ Idea 收到了一个很好的警告 BigDecimal divide 的结果被忽略 我可以以某种方式为我自己的 无副作用 函数获得相同的警告吗 比如为我
  • 创建常量字典对象

    我想完成一些类似于这篇文章中所做的事情 Objective C 中的常量 但是 我想构造一个 NSDictionary 如果我做类似的事情 常量 h extern NSArray const mFooKeys extern NSArray
  • 如何让matplotlib准确放置线条?

    默认情况下 matplotlib 绘图可能会非常不准确地放置线条 例如 请参阅附图中左端点的位置 至少有一整像素的空气是不应该存在的 事实上 我认为线中心偏离了 2 个像素 如何让matplotlib绘图准确 我不介意性能是否会受到影响 m
  • 通过成员数据在向量中搜索结构体项

    我对 C 非常陌生 我正在尝试找到一种方法来搜索结构向量以查找具有特定成员数据的结构 我知道这适用于向量中的简单类型 std find vector begin vector end item vector end 但假设我有一个这样的结构
  • 使用 JavaScript 更改标签文本

    为什么以下内容对我不起作用
  • Angular2 中的更改不会更新视图

    我已经开始探索 Angular2 我带着 Angular1 和一些 React 背景而来 但我遇到了一个问题 我想将某些击键绑定到组件中的操作 因此我决定使用 Angular2 生命周期来绑定 取消绑定操作 但是 如果我在 Mousetra
  • 如何比较两个 NSMutableArray?

    如何比较两个 NSMutableArray 如果两者相同则返回 true 否则返回 false 谢谢 return array1 isEqualToArray array2 returns YES如果数组相等 则返回NO
  • 将 matplotlib 图形嵌入到 iPython HTML 中

    我想在 Jupyter Notebook 中使用代码单元动态编写和显示 HTML 目标是生成 HTML 以我选择的某种方式显示 table div img 标签 我想捕获 img 数据并将其放置在自动生成的 HTML 中我想要的位置 到目前
  • 摆脱内联块图像下方的空间[重复]

    这个问题在这里已经有答案了 如何消除图像底部和包装器之间的空间 同时保持图像作为内联块 为什么会发生这种情况 http jsfiddle net dJVxb 2 HTML div img src https twimg0 a akamaih
  • Jquery 在按钮上打开弹出窗口,单击以进行引导

    当我点击下面的按钮时
  • 使用 Selenium IDE 访问 JavaScript 变量

    我想知道是否可以使用 Selenium 访问页面 JavaScript 变量 我有一个应用程序使用附加到窗口对象的变量 它具有全球范围 我可以通过以下方式访问它window myvar window myvar myvar this myv
  • 如何获取Azure网站中的本地文件系统路径

    我在磁盘上托管了一个文件以及我想要读取的网站 当我使用 System Environment CurrentDirectory 时 不确定如何访问该文件 它指向 D 驱动器位置 有人可以告诉我如何才能访问该文件吗 访问存储在我的网站托管位置
  • 卡夫卡主题_授权_失败

    我实际上正在努力使用 SASL 纯文本设置简单的 Kafka 身份验证并添加 ACL 授权 但当我尝试使用数据时遇到问题 main INFO org apache kafka common utils AppInfoParser Kafka
  • Pandas 使用 read_sql_table 使用过多内存

    我正在尝试将 Postgres 数据库中的表读入 Python 表大约有 800 万行和 17 列 数据库大小为 622MB 我可以使用 psql 将整个表导出到 csv 然后使用 pd read csv 读取它 它工作得很好 Python