Rumah  >  Artikel  >  Java  >  Bandingkan fail csv besar #eg38

Bandingkan fail csv besar #eg38

PHPz
PHPzasal
2024-09-10 16:31:02953semak imbas

Berikut ialah dua fail csv (A dan B) daripada struktur yang sama. Kedua-duanya menggunakan KEY_A, KEY_B dan KEY_C sebagai kunci utama, dan kedua-duanya mempunyai rekod yang berbeza.

Compare large csv files #eg38
Gunakan Java untuk membandingkan kedua-dua fail dalam tiga cara dan tulis hasilnya masing-masing ke fail csv baharu. 1. Cari rekod yang kunci utama adalah sama dan nilai medan lain tidak sama, keluarkan kunci utamanya dan kemudian medan lain A dan medan lain dalam B. Berikut ialah hasil yang dijangkakan:

Compare large csv files #eg38

  1. Cari perbezaan A dan B, iaitu rekod yang wujud dalam A tetapi tidak wujud dalam B, mengikut kunci utama. Di bawah adalah hasil yang dijangkakan:

Compare large csv files #eg38

  1. Cari perbezaan B dan A mengikut kunci utama. Di bawah adalah hasil yang dijangkakan:

Compare large csv files #eg38
Tulis kod SPL untuk melakukan tiga perbandingan. Di bawah adalah untuk perbandingan pertama:

Compare large csv files #eg38

Compare large csv files #eg38

Compare large csv files #eg38
Fungsi T() menghuraikan fail csv atau menulis data ke fail csv; @c pilihan membolehkan menggunakan kursor untuk mendapatkan semula data daripada fail yang tidak boleh dimuatkan ke dalam memori. fungsi sortx() mengisih data dalam kursor. fungsi joinx() melakukan merge-join. fungsi merge() menggabungkan rekod; Pilihan @d membolehkan mencari perbezaan.

Baca Cara Memanggil Skrip SPL dalam Java untuk mengetahui cara menyepadukan SPL ke dalam aplikasi Java.

Ini adalah salah satu masalah pada StackOverflow. Anda boleh mengklik padanya untuk melihat bahawa penyelesaian konvensional agak rumit, tetapi pendekatan SPL sangat mudah dan cekap.

Alamat sumber terbuka SPL

Atas ialah kandungan terperinci Bandingkan fail csv besar #eg38. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn