fread在4GB后停止读取CSV

fread在4GB后停止读取CSV,r,large-files,R,Large Files,我正试图使用fread读取一个7.7GB的文件,但我收到一个错误,提示它在读取文件的一半后停止读取: cdr <- fread('/path/to/data.csv') Read 1687 rows and 610989 (of 610989) columns from 4.000 GB file in 00:02:37 Warning message: In fread("/path/to/data.csv") : Stopped reading at empty line 1688

我正试图使用
fread
读取一个7.7GB的文件,但我收到一个错误,提示它在读取文件的一半后停止读取:

cdr <- fread('/path/to/data.csv')
Read 1687 rows and 610989 (of 610989) columns from 4.000 GB file in 00:02:37
Warning message:
In fread("/path/to/data.csv") :
 Stopped reading at empty line 1688 but text exists afterwards (discarded)

cdr <- fread('/path/to/data.csv', nrows = 2000)
Read 0.0% of 2000 rows
Error in fread("/path/to/data.csv", nrows = 2000) : 
 Expected sep (',') but new line or EOF ends field 500054 on line 1688 when reading data

cdr嗯,这太尴尬了。事实证明,我在对错误的文件运行
fread
,该文件恰好为4GB,因为它在一次失败的解压缩操作中被截断

真正的文件实际上位于不同的位置,但这两个文件的名称相同,路径相似,所以我把它们搞混了


当我读取真正的7.7GB文件时,一切都按预期进行。

好吧,这很尴尬。事实证明,我在对错误的文件运行
fread
,该文件恰好为4GB,因为它在一次失败的解压缩操作中被截断

真正的文件实际上位于不同的位置,但这两个文件的名称相同,路径相似,所以我把它们搞混了


当我读取真正的7.7GB文件时,一切正常。

错误消息说输入文件中有一个空行导致它停止。是这样吗?你希望你的输入中有一个空行吗?好问题。这是一个否定的观点;我验证了文件中没有空行。您可以尝试
blank.lines.skip=TRUE
检查它是否工作您是如何验证没有空行的?这真的是一个很大的猜测工作。4.00数字可能只是巧合。我在vim中手动检查了1685-1689线。没有空行。为了安全起见,我还运行了一个
egrep'^$'
,结果也没有显示任何内容。错误消息说输入文件中有一个空行导致它停止。是这样吗?你希望你的输入中有一个空行吗?好问题。这是一个否定的观点;我验证了文件中没有空行。您可以尝试
blank.lines.skip=TRUE
检查它是否工作您是如何验证没有空行的?这真的是一个很大的猜测工作。4.00数字可能只是巧合。我在vim中手动检查了1685-1689线。没有空行。为了安全起见,我还运行了一个
egrep'^$'
,结果也没有出现任何结果。