2017-03-23 21 views
1

私はfreadを使用して7.7ギガバイトのファイルを読み込むしようとしているの後にCSVを読んで停止しますが、私はそれだけでファイル途中で取得した後に読んで停止したことを示唆しているエラーを取得:関数freadは4ギガバイト

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 

注意していますエラーメッセージには、ファイルのサイズは4.000 GBですが、実際には7.7 GBです。同様に、エラーメッセージは、ファイルに1687の行があることを示しますが、実際には3378の行があります。

私はこのファイル(thanks @MrFlick for the suggestion)に空行がないことを再確認しました。

Rは、64ビットのUbuntuのインスタンス上で実行されている、とhttps://stackoverflow.com/a/18091755/ごとに私は.Machine$sizeof.pointerをチェックし、(私はそれは私が64ビットでRを実行しているを示していると考えている)8を得ました。

+0

エラーメッセージに、入力ファイルに空の行があり、その行が停止していると表示されています。それは事実ですか?あなたの入力に空白行があると思いますか? – MrFlick

+0

良い質問です。それは否定的です。ファイルに空白行がないことを確認しました。 – user5568265

+1

'blank.lines.skip = TRUE'を試してみてください。 –

答えて

0

これは恥ずかしいものです。私がfreadを間違ったファイルで実行していたことが判明しました。このファイルは、ちょうど4GBだったのです。これは、unzip操作が失敗したときに切り捨てられたためです。

実際のファイルは実際には別の場所にありますが、2つのファイルの名前が同じでパスが似ているので、それらが混ざり合っています。

実際に7.7GBファイルを編集したとき、すべてが期待通りに機能しました。

関連する問題