1

我需要解压缩transactions.gz从 Kaggle 下载的文件;大约 (2.86 GB),3.5 亿行,11 列。

我在 RStudio、Windows Vista、32 位、RAM:3 GB 上试过:

transactions <- read.table(gzfile("E:/2014/Proyectos/Kaggle/transactions.gz"))
write.table(transactions, file="E:/2014/Proyectos/Kaggle/transactions.csv")

但我在控制台上收到此错误消息

> transactions <- read.table(gzfile("E:/2014/Proyectos/Kaggle/transactions.gz"))
Error: cannot allocate vector of size 64.0 Mb
> write.table(transactions, file="E:/2014/Proyectos/Kaggle/transactions.csv")
Error: cannot allocate vector of size 64.0 Mb

我检查了这个案例,但它对我不起作用:Decompress gz file using R

我将不胜感激任何建议。

4

1 回答 1

3

此文件解压缩为 22GB 的 .csv 文件。您无法在 6GB 机器上的 R 中一次性处理所有内容,因为 R 需要将所有内容读入内存。最好在像 postgresql 这样的 RDBMS 中处理它。如果您打算使用 R,您可以分块处理它,一次读取可管理数量的行:读取一个块,处理它,然后用下一个块覆盖。因为这data.table::fread会比标准更好read.table

哦,不要在 R 中解压缩,只需从命令行运行gunzip,然后处理 csv。如果您使用的是 Windows,则可以使用 winzip 或 7zip。

于 2014-05-01T01:19:57.020 回答