」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 比較大型 csv 檔案 #eg38

比較大型 csv 檔案 #eg38

發佈於2024-11-08
瀏覽:101

這是兩個結構相同的 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開源位址

版本聲明 本文轉載於:https://dev.to/esproc_spl/compare-large-csv-files-eg38-29m8?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 為什麼自動換行在 HTML 表格中不起作用,如何修復?
    為什麼自動換行在 HTML 表格中不起作用,如何修復?
    HTML 表格中的自動換行:修復未換行的文字自動換行是CSS 屬性,用於使文字在元素內換行就像div 和span 一樣。但是,它通常無法在表格單元格中工作,導致文字溢出單元格的邊界。 要解決此問題,您可以使用表格的 table-layout:fixed CSS 屬性。此屬性強製表格具有固定佈局,使其...
    程式設計 發佈於2024-12-23
  • 什麼時候應該在 C++ 中使用 `std::size_t` 作為循環計數器?
    什麼時候應該在 C++ 中使用 `std::size_t` 作為循環計數器?
    何時在C 碼中使用std::size_t問題:何時使用C 中的循環,特別是在比較數組大小的情況下,最好使用std::size_t而不是像這樣的原始資料類型int?範例:#include <cstdint> int main() { for (std::size_t i = 0; ...
    程式設計 發佈於2024-12-23
  • 我應該對網站上的圖像使用 Base64 編碼嗎?
    我應該對網站上的圖像使用 Base64 編碼嗎?
    了解以 Base64 編碼圖像的影響將圖像轉換為 Base64 編碼是 Web 開發中的常見做法。然而,重要的是要了解它對檔案大小和網站效能的影響。 Base64 編碼影像的大小增加當影像轉換為 Base64 時,其大小通常會增加約 37%。這是因為Base64編碼使用6位元字元集來表示8位元數據,...
    程式設計 發佈於2024-12-23
  • 插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入資料時如何修復「常規錯誤:2006 MySQL 伺服器已消失」?
    插入記錄時如何解決「一般錯誤:2006 MySQL 伺服器已消失」介紹:將資料插入MySQL 資料庫有時會導致錯誤「一般錯誤:2006 MySQL 伺服器已消失」。當與伺服器的連線遺失時會出現此錯誤,通常是由於 MySQL 配置中的兩個變數之一所致。 解決方案:解決此錯誤的關鍵是調整wait_tim...
    程式設計 發佈於2024-12-23
  • HTML 格式標籤
    HTML 格式標籤
    HTML 格式化元素 **HTML Formatting is a process of formatting text for better look and feel. HTML provides us ability to format text without us...
    程式設計 發佈於2024-12-23
  • 如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    如何在 PHP 中組合兩個關聯數組,同時保留唯一 ID 並處理重複名稱?
    在 PHP 中組合關聯數組在 PHP 中,將兩個關聯數組組合成一個數組是常見任務。考慮以下請求:問題描述:提供的代碼定義了兩個關聯數組,$array1 和 $array2。目標是建立一個新陣列 $array3,它合併兩個陣列中的所有鍵值對。 此外,提供的陣列具有唯一的 ID,而名稱可能重疊。要求是建...
    程式設計 發佈於2024-12-23
  • 考慮到版本特定的行為,如何正確地將 Java 陣列轉換為列表?
    考慮到版本特定的行為,如何正確地將 Java 陣列轉換為列表?
    在Java 中將陣列轉換為清單:陣列與清單轉換之旅在資料操作領域,陣列與清單之間的轉換清單是Java 等程式語言中的基礎操作。然而,這種轉換的複雜性可能會帶來挑戰,特別是由於 Java 版本之間行為的微妙變化。 Arrays.asList() 行為的演變The Arrays.asList() 方法從...
    程式設計 發佈於2024-12-23
  • 為什麼 Python 會拋出 UnboundLocalError?
    為什麼 Python 會拋出 UnboundLocalError?
    UnboundLocalError 是如何發生的:Python 中的未綁定名稱和變數綁定在Python 中,變數綁定決定了變數的作用域和生命週期。當名稱未分配值時,它被視為未綁定。這可能會導致 UnboundLocalError 異常。 了解未綁定局部變數與具有明確宣告的語言不同,Python 允許...
    程式設計 發佈於2024-12-23
  • 透過「jQuery 快速入門」課程釋放您的 Web 開發技能
    透過「jQuery 快速入門」課程釋放您的 Web 開發技能
    您準備好提升您的 Web 開發專業知識並釋放最受歡迎的 JavaScript 庫 jQuery 的強大功能了嗎? LabEx 提供的「jQuery 快速入門」課程就是您的最佳選擇。這個綜合性的程式將引導您了解 jQuery 的基礎知識,使您能夠操作文件物件模型 (DOM) 並為您的網頁注入迷人的互動...
    程式設計 發佈於2024-12-23
  • 如何在 MySQL WHERE IN() 子句中處理具有多個值的記錄?
    如何在 MySQL WHERE IN() 子句中處理具有多個值的記錄?
    MySQL IN () 運算子查詢MySQL 資料庫時,WHERE IN () 運算子常用於根據特定條件擷取行列中的值。例如,以下查詢從「table」表中擷取「id」列與任意值(1、2、3、4) 相符的所有行:SELECT * FROM table WHERE id IN (1,2,3,4);但是,...
    程式設計 發佈於2024-12-23
  • 如何根據與特定值相符的列值過濾數組行?
    如何根據與特定值相符的列值過濾數組行?
    基於列值包含的行子集考慮一個具有多個列的數組$arr1 和第二個平面數組$arr2 ,包含特定的id 值。目標是過濾 $arr1 以僅保留列值與 $arr2 中的任何值相符的行。 先前使用篩選函數或 array_search 的嘗試已證明不成功。一個實用的解決方案涉及使用本機 PHP 函數 arra...
    程式設計 發佈於2024-12-23
  • 如何使用 DockerMake 將多個 Docker 映像合併為一個映像?
    如何使用 DockerMake 將多個 Docker 映像合併為一個映像?
    組合多個 Docker 映像Docker 不直接支援將多個 Docker 映像組合成一個統一的映像。但是,可以使用第三方工具來促進此過程。 DockerMake 就是這樣一個工具,可以創造複雜的映像繼承場景。 使用 DockerMake 組合映像DockerMake 透過使用 YAML 檔案定義之間...
    程式設計 發佈於2024-12-23
  • 大批
    大批
    方法是可以在物件上呼叫的 fns 數組是對象,因此它們在 JS 中也有方法。 slice(begin):將陣列的一部分提取到新數組中,而不改變原始數組。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index ...
    程式設計 發佈於2024-12-23
  • OpenCV 的 `cvWaitKey()` 函數如何管理使用者互動和視窗事件?
    OpenCV 的 `cvWaitKey()` 函數如何管理使用者互動和視窗事件?
    探討OpenCV 的「cvWaitKey()」功能OpenCV 的「cvWaitKey()」函數在管理使用者互動方面發揮至關重要的作用OpenCV 窗口。讓我們深入研究其內部運作方式和典型用例:功能概述cvWaitKey(x) 提供兩個主要功能:按鍵偵測:它等待使用者在OpenCV 視窗上按指定的持...
    程式設計 發佈於2024-12-23
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-12-23

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3