r - 使用 R 将大型 data.frame 保存到 PostgreSQL

标签 r postgresql dplyr

我正在将非常大的 data.frame(3000 万行)从 R 保存到 PostgreSQL 数据库,它会杀死我的 PC。由于这是 dplyr 生成的计算结果,我想使用这个包的一些内置功能,但 copy_to 不适用于如此巨大的表。有什么建议么?

最佳答案

您能否将数据帧复制到 csv 或制表符分隔的文本文件,然后使用 COPY FROM 命令 [1] 将其加载到 PostgreSQL 中?这实现了一种执行速度可能更快的批量加载方法。

在某些情况下,可以使用 RScript 将数据作为流发出并将其直接通过管道传输到 psql 中:

<RScript output tab delmited rows> | psql -c "COPY <tablename> (columnlist, ...) FROM STDIN WITH (FORMAT text)"

在一些长时间运行的情况下,我把| pv | 在中间跟踪进度 ( http://www.ivarch.com/programs/pv.shtml )。

[1] http://www.postgresql.org/docs/current/interactive/sql-copy.html

关于r - 使用 R 将大型 data.frame 保存到 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24283090/

相关文章:

python - python (Scikit-Learn) 和 R (e1071) 的精度不同

postgresql - 如何使用Ansible将转储导入docker容器中的postgres

postgresql - cloudfoundry 上的 grails 应用程序,如果定义了多数据源

r - ggplot 标签上的 curl curl

r - 如何取消 R 中测试产生的数据帧的嵌套

r - data.table 选择键不等于值的行

r - 从 Perl 中的数组中概率抽样

postgresql - 等同于完美球体上的 PostGIS ST_Project

r - 使用 `any` 和 `all` 作为对 `case_when` 内多个元素的逻辑测试?

r - 缺失数据的区域从 geom_sf/ggplot2 map 中删除。为什么?