Saya memiliki CSV
file 35GB . Saya ingin membaca setiap baris, dan menulis baris ke CSV baru jika cocok dengan suatu syarat.
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) {
try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) {
br.lines().parallel()
.filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world
.forEach(line -> {
writer.write(line + "\n");
});
}
}
Ini membutuhkan sekitar. 7 menit. Apakah mungkin untuk mempercepat proses itu lebih banyak lagi?
parallel
membuatnya lebih cepat? Dan bukankah itu mengocok garis sekitar?
BufferedWriter
diri Anda sendiri, menggunakan konstruktor yang memungkinkan Anda mengatur ukuran buffer. Mungkin ukuran buffer yang lebih besar (atau lebih kecil) akan membuat perbedaan. Saya akan mencoba mencocokkan BufferedWriter
ukuran buffer dengan ukuran buffer sistem operasi host.