有软件包: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/