【问题标题】:How to import 3000 CSV files into SQLite DB?如何将 3000 个 CSV 文件导入 SQLite DB?
【发布时间】:2015-03-12 11:00:44
【问题描述】:

我有大约 3000 个 CSV 文件,每个文件有 200 个条目。因此,总共有 600,000 个条目。

我想将所有这些文件导入 SQLite DB(我在 Firefox 中使用 SQLite Manager)。

执行此操作的最佳方法是什么?稍后我需要将 SQLite 表读入 R 代码,因此在将文件导入 DB 时应该考虑到这一点。例如,将所有文件导入同一个表是否是个好主意?或者,将每个文件导入单独的表是否更好(在这种情况下如何自动化此过程)?

【问题讨论】:

    标签: r sqlite csv import


    【解决方案1】:

    将所有内容放在一个表中可能最简单,但这取决于您以后的需求。

    所有在不同的表中使用文件名(不带扩展名)作为表名:

    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")
    }
    

    旁注:可能比 Firefox 插件更方便的工具可能是 http://sqlitebrowser.org/ - 这是一个偏好问题,但值得一试!多平台也是如此。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 2011-04-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      相关资源
      最近更新 更多