ここに同じ構造の 2 つの CSV ファイル (A と B) があります。どちらも KEY_A、KEY_B、KEY_C を主キーとして使用し、これら 2 つは異なるレコードを持ちます。
Java を使用して 2 つのファイルを 3 つの方法で比較し、結果をそれぞれ新しい csv ファイルに書き込みます。 1. 主キーが等しく、他のフィールドの値が等しくないレコードを検索し、それらの主キーを出力してから、A の他のフィールドと B の他のフィールドを出力します。 以下は予想される結果です:
3 つの比較を行うための SPL コードを作成します。以下は最初の比較です:
T() 関数は CSV ファイルを解析するか、CSV ファイルにデータを書き込みます。 @c オプションを使用すると、カーソルを使用してメモリに収まらないデータをファイルから取得できるようになります。 sortx() 関数は、カーソル内のデータをソートします。 joinx() 関数はマージ結合を実行します。 merge() 関数はレコードをマージします。 @d オプションを使用すると、相違点を見つけることができます。
SPL を Java アプリケーションに統合する方法については、「Java で SPL スクリプトを呼び出す方法」を参照してください。
これは StackOverflow の問題の 1 つです。これをクリックすると、従来のソリューションは非常に複雑ですが、SPL アプローチは非常にシンプルで効率的であることがわかります。
SPL オープンソース アドレス
以上が大きな CSV ファイルを比較 #eg38の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。