如何在R中读取一个来自.rar扩展名的大型数据集?
如何在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提前感谢。
在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"错误,但没有给出具体原因。