我的数据集压缩4GB,未压缩超过20GB。
该文件可以下载here。
我已经尝试了几种方法来加载它,但这是不可能的。 stackoverflow中存在类似的问题(question1,question2)
我尝试了他们的建议,我和提问者有同样的问题。
我尝试手动将文件的扩展名从.rar
更改为.gz
并从两种方式读取,但只有几行,但不起作用:
#First attemp
data <- read.table(gzfile("./data_in/song_log.gz"),header = F,sep=",",nrow=10)
data <- read.csv(gzfile("./data_in/song_log.gz"),header = F,sep=",",nrow=10)
data <- read.csv2(gzfile("./data_in/song_log.gz"),header = F,sep=",",nrow=10)
#Triying with "ff" package
library("ff")
data <- ff::read.csv.ffdf(gzfile("./data_in/song_log.gz"),header = F,sep=",",nrow=10)
Error in read.table.ffdf(FUN = "read.csv", ...) :
only ffdf objects can be used for appending (and skipping the first.row chunk)
对此案有何建议?
提前致谢
答案 0 :(得分:0)
devtools::install_github("jimhester/archive") # mind the install guidelines at https://github.com/jimhester/archive/blob/master/configure#L64-L72
library(archive)
con <- archive_read("~/Data/song_log.rar")
readLines(con, 3)
## [1] "hora;userId;songId;generoId;deviceId;trendingSong" "18-12-2016 00:00:25;27103;231990117;23;1_27103;0"
## [3] "18-12-2016 00:02:00;74637;241781021;24;1_74637;0"
您可以使用任何可以接收R connection
对象的内容。
我不会以20GB为例读取这个示例,但这些行有效,我建议将Apache Drill与sergeant
包一起使用并将此CSV转换为镶木地板。