我有一系列大型压缩文件,我已经解压缩,直接加载到MySQL数据库中以便从R中查询。
我将继续这个例子(在x86_64 GNU / Linux上):
> write.csv(iris, file = "iris.csv", row.names = FALSE, quote = FALSE)
> system("gzip iris.csv")
> list.files(pattern = "iris")
[1] "iris.csv" "iris.csv.gz"
我目前以下列方式加载解压缩文件:
> library(RSQLite)
> con <- dbConnect(RSQLite::SQLite(), dbname = "test_db")
> dbWriteTable(con, name = "iris", value = "iris.csv", field.types = list(Sepal.Length = "decimal(6, 2)", Sepal.Width = "decimal(6, 2)", Petal.Length = "decimal(6, 2)", Petal.Width = "decimal(6, 2)", Species = "varchar(15)"), row.names = FALSE)
[1] TRUE
我想知道是否可以使用压缩文件iris.csv.gz
对数据库进行直接表写入?
编辑:
我知道gzfile
但是根据我的理解,它的使用必须在写入MySQL DB之前将文件放入内存中,这是我希望避免的(如果我误解,请纠正我)