2 GB の大きなテキスト ファイルがあり、タブで区切られた 5 つの列があります。行は、5 つの列のうち 4 つが一致する場合にのみ重複と呼ばれます。
現在、最初に各列を別々の List にロードし、次にリストを反復処理し、重複した行を削除して集計することにより、dduping を行っています。
問題: 1 つのファイルを処理するのに 20 時間以上かかっています。 処理するファイルが 25 個あります。
誰かが自分の経験を共有してもらえますか?
この dduping は使い捨てコードになります。そのため、できるだけ早く仕事を終わらせるために、迅速で汚い解決策を探していました。
これが私の擬似コードです(大まかに)
Iterate over the rows
i=current_row_no.
Iterate over the row no. i+1 to last_row
if(col1 matches //find duplicate
&& col2 matches
&& col3 matches
&& col4 matches)
{
col5List.set(i,get col5); //aggregate
}
重複例
A と B は重複し、A=(1,1,1,1,1)、B=(1,1,1,1,2)、C=(2,1,1,1,1) となり、出力はbe A=(1,1,1,1,1+2) C=(2,1,1,1,1) [B が追い出されたことに注意]