首頁 >Java >java教程 >比較大型 csv 檔案 #eg38

比較大型 csv 檔案 #eg38

PHPz
PHPz原創
2024-09-10 16:31:02970瀏覽

這是兩個結構相同的 csv 檔案(A 和 B)。兩者都使用KEY_A、KEY_B和KEY_C作為主鍵,兩者有不同的記錄。

Compare large csv files #eg38
使用Java以三種方式比較兩個文件,並將結果分別寫入新的csv文件。 1. 找到主鍵相等而其他欄位值不相等的記錄,輸出其主鍵,然後輸出A的其他欄位和B的其他欄位。以下是預期結果:

Compare large csv files #eg38

  1. 根據主鍵找出A和B的差異,即A中存在但B中不存在的記錄。以下是預期結果:

Compare large csv files #eg38

  1. 依主鍵求B和A的差異。以下是預期結果:

Compare large csv files #eg38
寫 SPL 程式碼進行這三個比較。以下是第一次比較:

Compare large csv files #eg38

Compare large csv files #eg38

Compare large csv files #eg38
T()函數解析csv檔案或將資料寫入csv檔案;@c 選項允許使用遊標從無法裝入記憶體的檔案中擷取資料。 sortx() 函數對遊標中的資料進行排序。 joinx() 函數執行合併連線。 merge() 函數合併記錄;@d 選項可以找到差異。

閱讀如何在 Java 中呼叫 SPL 腳本,以了解如何將 SPL 整合到 Java 應用程式中。

這是 StackOverflow 上的問題之一。你可以點擊查看,傳統的解決方案相當複雜,但 SPL 方法確實簡單有效率。

SPL開源位址

以上是比較大型 csv 檔案 #eg38的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn