大佬教程收集整理的这篇文章主要介绍了使用sqldf将巨大的csv文件读入R中,但是sqlite文件需要两倍的空间,需要“吸尘”,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我注意到以下内容:似乎读入sqlite的数据存储在一个临时表中,因此为了使其可供以后使用,需要在sql语句中这样询问.
# generate sample data sample_data <- data.frame(col1 = sample(letters,100000,TRUE),col2 = rnorm(100000)) # save as csv write.csv(sample_data,"sample_data.csv",row.names = falSE) # create a sample sqlite database library(sqldf) sqldf("attach sample_db as new") # read the csv into the database and create a table with its content read.csv.sql("sample_data.csv",sql = "create table data as SELEct * from file",dbname = "sample_db",header = T,row.names = F,sep = ",")
然后可以使用sqldf(“SELEct * from data limit 5”,dbname =“sample_db”)访问数据.
问题如下:sqlite文件占用的空间是它应该的两倍.我的猜测是它包含两次数据:一次用于临时读取,一次用于存储的表.可以使用sqldf(“VACUUM”,“dbname =”sample_db“)清理数据库.这将回收空白空间,但需要很长时间,特别是当文件很大时.
有没有更好的解决方案,第一次不创建这种数据重复?
以上是大佬教程为你收集整理的使用sqldf将巨大的csv文件读入R中,但是sqlite文件需要两倍的空间,需要“吸尘”全部内容,希望文章能够帮你解决使用sqldf将巨大的csv文件读入R中,但是sqlite文件需要两倍的空间,需要“吸尘”所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。