如何读取R中.rar扩展名的大数据集?

时间:2017-12-19 17:06:52

标签: r csv rar ff

我的数据集压缩4GB,未压缩超过20GB。

该文件可以下载here

我已经尝试了几种方法来加载它,但这是不可能的。 stackoverflow中存在类似的问题(question1question2

我尝试了他们的建议,我和提问者有同样的问题。

我尝试手动将文件的扩展名从.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)

对此案有何建议?

提前致谢

1 个答案:

答案 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转换为镶木地板。