从 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
sqlite3
binary 在许多(任何?)系统上都没有默认安装,但它是一个简单且免费的 download/installation(请参阅 https://www.sqlite.org/download.html).
我有一个 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
sqlite3
binary 在许多(任何?)系统上都没有默认安装,但它是一个简单且免费的 download/installation(请参阅 https://www.sqlite.org/download.html).