从 CSV 文件在 R 中创建 SQLite 数据库:为什么数据库文件是 0KB 并且不包含任何表?

Creating an SQLite DB in R from an CSV file: why is the DB file 0KB and contains no tables?

我有一个 9GB 的 .csv 文件,想将其转换为 sqlite 数据库。

我关注了 https://datacarpentry.org/R-ecology-lesson/05-r-and-databases.html#Connecting_to_databases,它在我的本地机器上运行,但在服务器上它说 disk/database 已满。在任何情况下,在本地机器上,DB 文件看起来都是 0KB 并且不包含任何表。有什么想法吗?

我就是这样做的:

library(dplyr)
library(dbplyr)

#Test data

df<-as.data.frame(x1=runif(1e7),x2=runif(1e7))

#Make DB
PassengerData <- src_sqlite("FINAL_data.sqlite", create = TRUE)

#Copy dataframe to DB
copy_to(PassengerData,df)

# add my data.frame as a table
PassengerData<-tbl(PassengerData,"df")

然后我关闭 R 并打开一个新会话:

查看我做的数据库:

df<-DBI::dbConnect(RSQLite::SQLite(), "FINAL_data.sqlite")

src_dbi(df)
src:  sqlite 3.34.1 [Data/FINAL_data.sqlite]
tbls:

其中没有表格。为什么?

我建议,将整个 (9GB) 文件加载到 R 中以摄取到 SQLite3 数据库中的唯一目的的前景有点缺陷(您可能没有足够的内存来加载到 R 中)。相反,单独使用 sqlite3

我已经从 mtcars.

预制了一个文件 mt.csv
$ sqlite3 -csv mt.sqlite3 '.import mt.csv mtcars'
$ ls -l mt.sqlite3
-rw-r--r-- 1 r2 r2 8192 Feb  4 12:19 mt.sqlite3

$ sqlite3 -column -header mt.sqlite3 'select * from mtcars limit 3'
mpg         cyl         disp        hp          drat        wt          qsec        vs          am          gear        carb
----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------  ----------
21          6           160         110         3.9         2.62        16.46       0           1           4           4
21          6           160         110         3.9         2.875       17.02       0           1           4           4
22.8        4           108         93          3.85        2.32        18.61       1           1           4           1

sqlite3binary 在许多(任何?)系统上都没有默认安装,但它是一个简单且免费的 download/installation(请参阅 https://www.sqlite.org/download.html).