2014-01-09 14 views
8

これまで、R data.tableに〜3000の奇数列のファイルを正常にロードすることができましたが、今はsegfaultを取得しています。ファイルのサイズはまだ似ています。何が起こっているのかは分かりません。エラーメッセージはいずれも役に立ちません。マシンは十分なメモリを持っている〜256 GBのfread segfaultと30GBの空白で区切られたファイル

> dosages <- fread(combined_dosage_file, header=F, stringsAsFactors=F) 

*** caught segfault *** 
address (nil), cause 'unknown' 

Traceback: 
1: fread(combined_dosage_file, header = F, stringsAsFactors = F) 

Possible actions: 
1: abort (with core dump, if enabled) 
2: normal R exit 
3: exit R without saving workspace 
4: exit R saving workspace 

のSessionInfo()

R version 3.0.1 (2013-05-16) 
Platform: x86_64-unknown-linux-gnu (64-bit) 

locale: 
[1] C 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base 

other attached packages: 
[1] data.table_1.8.10 

冗長出力500Kライン

> f <- "../common_input/test.dosage" 
> d <- fread(f, header=F, skip=1, stringsAsFactors=F, verbose=T) 
Detected eol as \n only (no \r afterwards), the UNIX and Mac standard. 
Using line 2 to detect sep ('skip' has been supplied) ... sep=' ' 
Found 3053 columns 
First row with 3053 fields occurs on line 2 (either column names or first row of data) 
'header' changed by user from 'auto' to FALSE 
Count of eol after first data row: 500000 
Subtracted 1 for last eol and any trailing empty lines, leaving 499999 data rows 
Type codes: 03033222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 (first 5 rows) 
Type codes: 03033222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 (+middle 5 rows) 
Type codes: 03033222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 (+last 5 rows) 
Bumping column 3 from INT to INT64 on data row 193249, field contains 'rs12218882' 
Bumping column 3 from INT64 to REAL on data row 193249, field contains 'rs12218882' 
Bumping column 3 from REAL to STR on data row 193249, field contains 'rs12218882' 

*** caught segfault *** 
address (nil), cause 'unknown' 

Traceback: 
1: fread(f, header = F, skip = 1, stringsAsFactors = F, verbose = T) 

と小さいテストファイル上で動作して更新

私はデータファイルをもっと慎重に見ていましたが、ランダムな行には最初は余分なスペースがありました。これらのファイルを削除した後、60GbのRAMを使用してRでファイル全体を読み込むことができました(std data.frameと比較してかなり驚異的です)。今のところ私は行かなくてはなりませんが、それが根本的な原因であるかどうかを調べる価値はあるかもしれませんが、そのスペースがfreadとcolのサイズを混同しているように見えます。可能であれば、より具体的なエラーを吐き出すことができるかもしれません。

-Abhi

+1

編集のおかげでよかったです! 30GBのファイルが正常にロードされた場合、問題はサイズにすることはできません。先頭にスペースを入れる必要があります。私は[bug#5259](https://r-forge.r-project.org/tracker/index.php?func=detail&aid=5259&group_id=240&atid=975)を提出しました。 –

+0

この問題は、新しいgithubプロジェクトページの[#494](https://github.com/Rdatatable/data.table/issues/494)になりました。私はスペースを含む 'fread()'に修正を加えました。アップグレード、テスト、書き戻してください。ありがとう。 – Arun

答えて

8

アップデート2015年9月:質問への上記アルンさんのコメント@を1として、彼はCRAN 2015年9月、#494にv1.9.6でこれを修正しました。


後世のために前の答え...

私はv1.8.11のためのNEWSを通して見てきたと私はfreadのための任意のクラッシュの修正を見ることができません。実際には、freadの完全なクラッシュレポートは全く記憶されていないので、これは新しいものです。

verbose=TRUEfreadに渡して、それを再現できるかどうかを確認してください。出力はクラッシュがどこにあるかという手がかりを与えます。また、役立つファイル(行、列、タイプ)に関する情報も表示されます。

新しいセッションを開始してファイルをロードすると、クラッシュすることはありますか?

Btw、それは、RAMで30GBから60GBの間で、カラムタイプ(2.7e6 * 3000 * 4|8/1024^3)に応じて変わります。大きなファイルですが、256GBのRAMを搭載していると言われているので、これは間違いなく何かfreadで問題ありません。可能であればfreadはまだこのサイズにテストされていません。そのサイズのデータ​​セットは、主に小さなファイルに細分される傾向があり、その後、慣用句は次のとおりです。

rbindlist(lapply(<files>, fread)) 

しかし、あなたは、あなたが持っているものがあります:1つの非常に大きなファイルを。だからfreadはそれでうまくいくはずです。それがなぜ前に出てこなかったのかを説明するだけです。

+0

は冗長出力を追加しました。私は一種の混乱しています。データテーブルは前と同じデータセットで美しく動作しましたが、今は奇妙なエラーが発生しています。 – Abhi

関連する問題