我试图使用fread从data.table包中打开一个2.2G文件,但仍然会出现相同的错误(对于其他文件,这些文件不太困难):
library(data.table)
data.table 1.9.4 For help type: ?data.table
*** NB: by=.EACHI is now explicit. See README to restore previous behaviour.
train = data.table::fread('train.csv')Error in data.table::fread("train.csv") : file not found: train.csv
当然,文件是存在的(read.csv()工作,但非常慢)。我在i686上运行Ubuntu12.04LTS。感谢你的帮助!
注意到:我正在试图读取的文件是‘tra.gz’,可以在:https://www.kaggle.com/c/tradeshift-text-classification/data找到。
这是一个2.2G的csv文件,非常标准。
编辑:当我使用verbose=TRUE时,它说:
Input contains no \n. Taking this to be a filename to open
发布于 2014-10-22 16:36:38
为了结束这个话题:我把我的Ubuntu升级到x86-64,现在fread工作得很好。
只是一个总结,以帮助开发人员:
1-下载了一个大型文件(本例中为2.2g)
2-尝试使用fread读取,并获得错误:file not found: train.csv
我使用的是Ubuntu12.04LTS x86和R上一个稳定版本。
正如所指出的,较小的文件在这个场景中工作(~731 MB)。无论如何,谢谢你的帮助!
发布于 2016-01-28 00:18:03
要在32位Linux系统上打开大文件,需要向O_LARGEFILE函数提供一个fread选项,而fread不这样做。这是一个实际失败的open调用,但错误地报告为“文件未找到”错误。
启用大型文件支持的另一种方法是在安装包时将一个-D_FILE_OFFSET_BITS=64选项传递给编译器。卸载并删除data.table,将以下内容放入~/.R/Makevars
CFLAGS=-D_FILE_OFFSET_BITS=64然后发布R CMD INSTALL /path/to/data.table_X.Y.Z.tar.gz。新安装的软件包将在32位系统上成功地打开大文件。
https://stackoverflow.com/questions/26302318
复制相似问题