[java] OpenCSV를 사용하여 CSV 파일에서 중복된 데이터를 제거하는 방법은?

CSV 파일에서 중복된 데이터를 제거하는 것은 데이터 정제와 데이터 분석 작업에 유용합니다. Java에서는 OpenCSV 라이브러리를 사용하여 이 작업을 간편하게 할 수 있습니다. OpenCSV는 CSV 파일을 읽고 쓰는 데 사용되는 라이브러리입니다.

다음은 OpenCSV를 사용하여 중복된 데이터를 제거하는 방법입니다:

  1. OpenCSV 라이브러리를 Maven 또는 Gradle과 같은 의존성 관리 도구를 사용하여 프로젝트에 추가합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:
<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.0</version>
</dependency>
  1. CSV 파일을 읽기 위해 CsvReader를 사용합니다. 다음과 같이 CsvReader 객체를 생성하고 CSV 파일을 읽습니다:
Reader reader = new FileReader("파일경로.csv");
CsvReader csvReader = new CsvReader(reader);
  1. CSV 파일의 데이터를 반복하면서 중복된 데이터를 제거합니다. HashSet을 사용하여 중복을 확인하고 필요에 따라 적절한 작업을 수행합니다:
Set<String> uniqueData = new HashSet<>();
String[] rowData;

while (csvReader.readRecord()) {
    rowData = csvReader.getValues();
    
    // 중복 체크
    if (!uniqueData.contains(rowData[0])) {
        // 중복되지 않은 데이터 작업 수행
        // 예: 파일에 쓰기, 데이터베이스에 저장 등
    }

    uniqueData.add(rowData[0]);
}
  1. CsvReader 및 관련 리소스를 해제합니다:
csvReader.close();
reader.close();

위의 코드는 CSV 파일에서 첫 번째 열의 데이터를 기준으로 중복된 데이터를 제거하는 예시입니다. 실제로 중복을 확인해야하는 열이 다를 수 있으므로 적절히 수정해야합니다.

참고 자료: