【问题标题】:How read a large dataset from .rar extension in R?如何从 R 中的 .rar 扩展名中读取大型数据集?
【发布时间】:2017-12-19 17:06:51
【问题描述】:

我有一个 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)

对这个案例有什么建议吗?

提前致谢

【问题讨论】:

    标签: r csv rar ff


    【解决方案1】:
    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 的示例,但这些行有效,我建议使用带有 sergeant 包的 Apache Drill 并将此 CSV 转换为镶木地板。

    【讨论】:

    • 我不知道会发生什么,但我尝试执行这段代码,然后我立即收到了“R Session Aborted”的炸弹:-(
    猜你喜欢
    • 1970-01-01
    • 2014-03-30
    • 2011-04-27
    • 2020-05-23
    • 2018-07-11
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多