从R中将巨大的CSV文件加载到postgresql时出错

时间:2016-08-19 18:14:59

标签: r postgresql csv rpostgresql

我有大约10,000个csv文件,我试图导入Postgres。 csv文件大小各约为500MB到1GB。我首先将每个文件导入R作为数据帧,因为我必须对原始数据进行一些预处理(比如过滤掉一些行并添加一些额外的列)。然后我使用dbWriteTable将数据写入postgres。

status = try(dbWriteTable(con, name = "my_table", value = my.df, row.names = FALSE, append = TRUE,overwrite= FALSE))

在同一个R脚本中,我还将一些基本数据(文件索引)写入其他表

qry = paste0("insert into file_list (file_name) values ('",filename,"')")
dbSendQuery(con,qry)

R脚本通常运行良好,但经常使用以下消息停止工作

Error in postgresqlExecStatement(conn, statement, ...): RS-DBI driver: 
(could not run statement: server closed the connection unexpectedly\n\tThis
probably means the server terminated abnormally\n\tbefore or while
processing the request.\n)\n

,很少这样

Error in postgresqlCopyInDataframe(new.con, value) : RS-DBI driver:
(PQputCopyData failed: server closed the connection unexpectedly
This probably means the server terminated abnormally before or while 
processing the request.)
Error in postgresqlNewConnection(drv, ...) : RS-DBI driver: (could not
connect my_db@my_address on dbname "mydb") Error in
!dbPreExists : invalid argument type

我不确定导致这些消息的原因以及如何避免这些消息。这是因为与服务器失去联系还是因为文件太大。任何帮助表示赞赏。

我正在使用R 3.3.1(64位),Windows 7(64位,8GB RAM)和Postgres 9.2。

感谢。

0 个答案:

没有答案