巨大なCSVファイルを読み取り/書き込み/検索/交換
-
23-10-2019 - |
質問
私は巨大な(4,5 GB)CSVファイルを持っています。基本的なカットと貼り付けを実行し、いくつかの列の操作を交換する必要があります。データはかなりよく整理されています。サイズ(2000行、550000列)。
ここにデータの一部があります。
ID,Affection,Sex,DRB1_1,DRB1_2,SENum,SEStatus,AntiCCP,RFUW,rs3094315,rs12562034,rs3934834,rs9442372,rs3737728
D0024949,0,F,0101,0401,SS,yes,?,?,A_A,A_A,G_G,G_G
D0024302,0,F,0101,7,SN,yes,?,?,A_A,G_G,A_G,?_?
D0023151,0,F,0101,11,SN,yes,?,?,A_A,G_G,G_G,G_G
4、5、6、7、8、9番目の列を削除する必要があります。列10以降のすべての_文字を見つけて、スペース()文字に置き換える必要があります。すべてを交換する必要がありますか?ゼロ(0);すべてのコンマをタブに置き換える必要があります。最初の行を削除する必要があります(列名があります。すべての0を1に、1すべての1に置き換える必要があります。 3列;
結果のファイルで出力が読み取られるように:
D0024949 1 2 A A A A G G G G
D0024302 1 2 A A G G A G 0 0
D0023151 1 2 A A G G G G G G
(入力と出力の両方が行ごとに1行、ne余分な空白の行を読み取る必要があります)Javaでそれを行うためのメモリ効率的な方法があります(そして、それを行うにはコードが必要です)、またはこの大きなデータを再生するための使用可能なツールがあります。 Excel機能を簡単に適用できます。
正しい解決策はありません
他のヒント
2つのことが必要です。
- 正規表現の知識(別名Regex、Regexes)
- PowerGrep
所属していません StackOverflow