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