我大约有3000个CSV文件,每个文件有200个条目。因此,总共有600,000个条目。
我想将所有这些文件导入SQLite DB(我在Firefox中使用SQLite Manager)。
最好的方法是什么?稍后,我将需要将SQLite表读入R代码,因此在将文件导入DB中时应考虑到这一点。例如,将所有文件导入同一表是一个好主意吗?或者,将每个文件导入到单独的表中是否更好(在这种情况下,如何自动执行此过程)?
最佳答案
将所有内容放到一个表中可能最容易,但这取决于您的需求。
所有在不同的表中都使用文件名(不带扩展名)作为表名:
library(RSQLite)
con <- dbConnect(SQLite(), "mydb.sqlite")
for(filename in list.files()) {
tmp <- read.table(filename, [...])
dbWriteTable(con, name = strsplit(filename,"\\.")[[1]][1], value = tmp)
}
全部放在一个表中(使用RSQLite):
library(RSQLite)
con <- dbConnect(SQLite(), "mydb.sqlite")
for(filename in list.files()) {
tmp <- read.table(filename, [...])
dbWriteTable(con, name = "mytable", value = tmp, append = TRUE)
}
全部放在一个表中(使用sqldf):
library(sqldf)
for(filename in list.files()) {
tmp <- read.table(filename, [...])
sqldf("INSERT INTO mytable SELECT * FROM tmp;", dbname = "mydb.sqlite", drv = "SQLite")
}
旁注:http://sqlitebrowser.org/可能是比Firefox插件更方便的工具-这是一个优先选择的问题,但值得一试!多平台也是如此。
关于r - 如何将3000个CSV文件导入SQLite DB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29007961/