Slide 8
Slide 8 text
一時ファイルと組み合わせた大規模シャッフル①
8
1. メモリに入る分まで読んでシャッフル
2. 一時ファイルに書き出し
を繰り返す
…
100GB
CSV
4GB
4GB
let file = NamedTempFile::new()?;
let shuf_indices = fisher_yates_shuffle_n(rows.len());
let mut tmp_writer = io::writer(file.path().to_str()?;
for i in shuf_indices {
tmp_writer.write(format!("{}", rows[i]).as_bytes())?;
}
tmp_files.push(TmpFile {
remaining_rows: rows.len(),
file: file,
};
total_rows += rows.len();