Maison >Java >javaDidacticiel >Comparez les gros fichiers CSV #eg38

Comparez les gros fichiers CSV #eg38

PHPz
PHPzoriginal
2024-09-10 16:31:02971parcourir

Voici deux fichiers csv (A et B) de même structure. Les deux utilisent KEY_A, KEY_B et KEY_C comme clé primaire, et les deux ont des enregistrements différents.

Compare large csv files #eg38
Utilisez Java pour comparer les deux fichiers de trois manières et écrivez les résultats respectivement dans de nouveaux fichiers CSV. 1. Recherchez les enregistrements où les clés primaires sont égales et les valeurs des autres champs ne sont pas égales, affichez leurs clés primaires, puis les autres champs de A et les autres champs de B. Vous trouverez ci-dessous le résultat attendu :

Compare large csv files #eg38

  1. Trouver la différence entre A et B, c'est-à-dire les enregistrements existant dans A mais n'existant pas dans B, selon la clé primaire. Ci-dessous le résultat attendu :

Compare large csv files #eg38

  1. Trouver la différence entre B et A selon la clé primaire. Ci-dessous le résultat attendu :

Compare large csv files #eg38
Écrivez le code SPL pour effectuer les trois comparaisons. Ci-dessous pour la 1ère comparaison :

Compare large csv files #eg38

Compare large csv files #eg38

Compare large csv files #eg38
La fonction T() analyse un fichier csv ou écrit des données dans un fichier csv ; L'option @c permet d'utiliser le curseur pour récupérer les données d'un fichier qui ne peut pas tenir dans la mémoire. La fonction sortx() trie les données dans un curseur. La fonction joinx() effectue une jointure par fusion. La fonction merge() fusionne les enregistrements ; L'option @d permet de trouver la différence.

Lisez Comment appeler un script SPL en Java pour découvrir comment intégrer SPL dans une application Java.

C'est l'un des problèmes sur StackOverflow. Vous pouvez cliquer dessus pour voir que la solution conventionnelle est assez compliquée, mais l'approche SPL est vraiment simple et efficace.

Adresse open source SPL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn