>Java >java지도 시간 >대용량 csv 파일 비교 #eg38

대용량 csv 파일 비교 #eg38

王林
王林원래의
2024-09-10 16:31:09771검색

다음은 동일한 구조의 두 개의 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 코드를 작성하십시오. 아래는 1차 비교입니다:

Compare large csv files #eg38

Compare large csv files #eg38

Compare large csv files #eg38
T() 함수는 csv 파일을 구문 분석하거나 csv 파일에 데이터를 씁니다. @c 옵션을 사용하면 커서를 사용하여 메모리에 맞지 않는 파일에서 데이터를 검색할 수 있습니다. sortx() 함수는 커서의 데이터를 정렬합니다. Joinx() 함수는 병합 조인을 수행합니다. merge() 함수는 레코드를 병합합니다. @d 옵션을 사용하면 차이를 찾을 수 있습니다.

SPL을 Java 애플리케이션에 통합하는 방법을 알아보려면 Java에서 SPL 스크립트를 호출하는 방법을 읽어보세요.

이것은 StackOverflow의 문제 중 하나입니다. 클릭하시면 기존 솔루션이 상당히 복잡하다는 것을 알 수 있지만 SPL 접근 방식은 정말 간단하고 효율적입니다.

SPL 오픈소스 주소

위 내용은 대용량 csv 파일 비교 #eg38의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.