我有大约 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。
谢谢。