如何在R中读取一个来自.rar扩展名的大型数据集?

7 浏览
0 Comments

如何在R中读取一个来自.rar扩展名的大型数据集?

我有一个数据集,压缩后大小为4GB,未压缩时超过20GB。\n文件可以在这里下载。\n我尝试过几种方法来加载它,但都没有成功。在stackoverflow上有类似的问题(问题1问题2)\n我尝试了他们建议的方法,但遇到了和提问者一样的问题。\n我试图手动将文件的扩展名从.rar更改为.gz,并从两个方式以及仅仅读取几行数据,但都不起作用:\n

代码:

\n

#第一次尝试
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)
#使用"ff"包进行尝试
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)

\n对于这种情况有什么建议吗?\n提前感谢。

0
0 Comments

在R中读取大型的.rar扩展名数据集的问题出现的原因是,用户尝试使用archive包中的archive_read函数来读取.rar文件,但在执行代码时出现了"R Session Aborted"错误。为了解决这个问题,可以尝试以下方法:

1. 确保已正确安装archive包。可以使用devtools包中的install_github函数从GitHub上安装最新版本的archive包。

devtools::install_github("jimhester/archive")

2. 在代码中加载archive包。

library(archive)

3. 使用archive_read函数从.rar文件创建一个连接对象。

con <- archive_read("~/Data/song_log.rar")

4. 使用readLines函数从连接对象中读取数据。可以指定要读取的行数。

readLines(con, 3)

另外,作者提到他没有尝试读取20GB的数据,但是上述代码可以正常工作。作者建议使用Apache Drill和sergeant包将CSV文件转换为parquet格式。这样可以提高数据读取的效率。

最后,作者提到他执行这段代码时出现了"R Session Aborted"错误,但没有给出具体原因。

0