mysql - 有没有更快的方法将数据从 R 上传到 MySql?

标签 mysql r rodbc rmysql

我正在使用以下代码将新表上传到 mysql 数据库。

library(RMySql)
library(RODBC)

con <- dbConnect(MySQL(),
  user = 'user',
  password = 'pw',
  host = 'amazonaws.com',
  dbname = 'db_name')

dbSendQuery(con, "CREATE TABLE table_1 (
        var_1 VARCHAR(50),
        var_2 VARCHAR(50),
        var_3 DOUBLE,
        var_4 DOUBLE);
        ")

channel <- odbcConnect("db name")
sqlSave(channel, dat = df, tablename = "tb_name", rownames = FALSE, append = 
TRUE)

完整的数据集是 68 个变量和 500 万行。将 50,000 行上传到 MySql 需要 90 多分钟。有没有更有效的方法将数据上传到 MySql。我最初尝试了 dbWriteTable(),但这会导致出现一条错误消息,指出与数据库的连接已丢失。

最佳答案

考虑从 R 导出 CSV 以使用 LOAD DATA INFILE 导入 MySQL :

...
write.csv(df, "/path/to/filename.csv", row.names=FALSE)

dbSendQuery(con, "LOAD DATA LOCAL INFILE '/path/to/filename.csv'
                  INTO TABLE mytable
                  FIELDS TERMINATED by ','
                  ENCLOSED BY '"'
                  LINES TERMINATED BY '\\n'")

关于mysql - 有没有更快的方法将数据从 R 上传到 MySql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44288358/

相关文章:

php - 为什么我的注销脚本没有注销

php - 如果 MYSQL,则选择日期和时间列

r - plotly 中每个因子水平的颜色

mysql - 对于外表中不存在的记录,avg() 值设置为默认值 0

mysql - 为什么整数 DEFAULT 值得到引号?

r - 查找具有特定参数的函数

r - 将\footnote{} 插入带有表格和 tabular.environment 的标题中

sql - 无法使用 R 中的 sqlSave 附加到 SQL Server 表

r - 下载带有多张工作表的 xls 文件作为数据框 Shiny R

database - 如何使用 R DBI 传递 data.frame 以进行更新