【问题标题】:Read a PostgreSQL local file into R in chunks and export to .csv将 PostgreSQL 本地文件分块读入 R 并导出为 .csv
【发布时间】:2016-08-14 23:47:43
【问题描述】:

我有一个 PostgreSQL 格式的本地文件,我想将它读入 R 中并导出为 .csv

我知道这可能是一个简单的问题,但我对PostgreSQLSQL 一点也不熟悉。我使用 R 库尝试了不同的东西,例如 RPostgreSQLRSQLitesqldf,但我无法理解这一点。

【问题讨论】:

  • 将数据分成块的目的是什么?
  • 什么是“PostgreSQL 格式”?我从没听说过,而且我用过很多 PostgreSQL。
  • @DanBracuk,文件大小为 18GB,所以我想分块执行此任务以解决 R 中的内存限制。
  • @bgoldst 我想这让你知道我对 PostgreSQL 有多陌生。我拥有的文件以名称“gps_PostgreSQL.rar”压缩。文件名为“gps_p.backup”
  • 您是在更新现有文件还是从头开始创建一个非常大的文件?

标签: r sqldf rpostgresql rsqlite


【解决方案1】:

要求是以编程方式从头开始创建一个非常大的 .csv 文件并从数据库中的数据填充它?我会使用这种方法。

第 1 步 - 将数据库数据隔离到具有自动递增主键字段的单个表中。是始终使用同一张表还是每次都创建和删除一张,取决于程序并发使用的可能性。

第 2 步 - 使用您的编程代码创建 .csv 文件。它可以是空的,也可以有列标题,这取决于您是否需要列标题。

第 3 步 - 从表中获取最小和最大主键值。

第 4 步 - 使用第 3 步中的值在您的编程代码中设置一个循环。循环内部:

  • 查询表以获取 x 行
  • 将这些行附加到您的文件中
  • 增加控制循环的变量

第 5 步 - 对文件执行任何操作。不要试图用你的编程代码来阅读它。

【讨论】:

  • 感谢您的回答,您已在其中列出了流程的逻辑。如果您或其他人可以在R 代码中开发它,我将不胜感激。关于第 1 步:我看过一些关于如何将 data.frame 写入 SQL 数据库的教程,但我找不到如何将本地文件写入 SQL 数据库。
  • 不会是我。我是一个 ColdFusion 程序员,因为 sql 标签而阅读了这个问题。我建议的方法应该适用于任何语言和数据库引擎。我推荐的另一种方法是一次做一件事。最后,在开发过程中,使用少量数据。
【解决方案2】:

如果您的最终目标是创建一个 csv 文件,您可以直接使用 PostgreSQL 来完成。

你可以运行类似这样的东西: 将 my_table 复制到 'C:\my_table.csv' DELIMITER ',' CSV HEADER;

抱歉,如果我误解了您的要求。

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2012-11-22
    相关资源
    最近更新 更多