有软件包:RMySQL

如何从R批量上传大量数据到mysql?我有一个约有100万行和80列的csv。

这样的事情会起作用吗?

dbWriteTable(con, "test2", "~/data/test2.csv") ## table from a file

我担心这会逐行插入...

最佳答案

如果要同时从同一客户端插入许多行,则可以将INSERT语句与多个VALUES一起使用

INSERT INTO test2(col1, col2, col3, col4)
VALUES
('val1', 'val2', val3, val4),
('val1', 'val2', val3, val4),
('val1', 'val2', val3, val4)

这是有关如何创建查询的示例。我在这里使用data.table:
dat <- matrix(seq(4*3), 3, 4)
library(data.table)
DT <- data.table(t(dat))
query <- paste('INSERT INTO test2(col1, col2, col3, col4)\nVALUES\n',
                gsub('c','',(DT[,paste(.SD,collapse='\n')])))

   cat(query)
INSERT INTO test2(col1, col2, col3, col4)
VALUES
 (1, 4, 7, 10)
(2, 5, 8, 11)
(3, 6, 9, 12)

然后您可以使用dbGetQuery执行它:
  dbGetQuery(con, query)

关于mysql - R批量上传数据到MYSQL数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17645996/

10-13 01:59