[java] OpenCSV를 사용하여 CSV 파일에서 중복된 데이터를 제거하는 방법은?
CSV 파일에서 중복된 데이터를 제거하는 것은 데이터 정제와 데이터 분석 작업에 유용합니다. Java에서는 OpenCSV 라이브러리를 사용하여 이 작업을 간편하게 할 수 있습니다. OpenCSV는 CSV 파일을 읽고 쓰는 데 사용되는 라이브러리입니다.
다음은 OpenCSV를 사용하여 중복된 데이터를 제거하는 방법입니다:
- OpenCSV 라이브러리를 Maven 또는 Gradle과 같은 의존성 관리 도구를 사용하여 프로젝트에 추가합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.0</version>
</dependency>
- CSV 파일을 읽기 위해 CsvReader를 사용합니다. 다음과 같이 CsvReader 객체를 생성하고 CSV 파일을 읽습니다:
Reader reader = new FileReader("파일경로.csv");
CsvReader csvReader = new CsvReader(reader);
- CSV 파일의 데이터를 반복하면서 중복된 데이터를 제거합니다. HashSet을 사용하여 중복을 확인하고 필요에 따라 적절한 작업을 수행합니다:
Set<String> uniqueData = new HashSet<>();
String[] rowData;
while (csvReader.readRecord()) {
rowData = csvReader.getValues();
// 중복 체크
if (!uniqueData.contains(rowData[0])) {
// 중복되지 않은 데이터 작업 수행
// 예: 파일에 쓰기, 데이터베이스에 저장 등
}
uniqueData.add(rowData[0]);
}
- CsvReader 및 관련 리소스를 해제합니다:
csvReader.close();
reader.close();
위의 코드는 CSV 파일에서 첫 번째 열의 데이터를 기준으로 중복된 데이터를 제거하는 예시입니다. 실제로 중복을 확인해야하는 열이 다를 수 있으므로 적절히 수정해야합니다.
참고 자료:
- OpenCSV GitHub Repository: https://github.com/opencsv/opencsv
- OpenCSV Documentation: http://opencsv.sourceforge.net/
- OpenCSV Maven Repository: https://mvnrepository.com/artifact/com.opencsv/opencsv