728x90
반응형
SMALL

Apache Spark 3

2. 스프링부트 프로젝트 내에서 spark session 사용

Apache Spark는 클러스터 환경에서 데이터를 분산 처리하는데 매우 효율적이고 강력한 라이브러리이다. 제공하는 기능들은 데이터를 빠르게 읽고 처리하는데 큰 도움을 준다. 비록 클러스터 환경은 아니지만 spark에서 제공하는 기능들을 사용하면 대용량 데이터의 처리 속도를 크게 향상시킬 수 있을 것 같아 현재 개발중인 프로젝트에 도입했다. 우선 서버의 특정 경로에 존재하는 csv파일을 sparkSession을 통해 읽어와야 한다. SparkSession의 Dataset는 Apache Spark에서 데이터를 다루는 핵심적인 구조이다. 여기서 Dataset는 테이블 형태의 구조화된 데이터를 나타내며, 각 행은 Row 객체로 표현된다. 이 구조는 SQL과 유사한 방식으로 데이터를 쿼리하고 조작할 수 있도록 ..

Apache Spark 2024.04.15

1. Spark Session 생성하기 - Gradle 설정

우선 로컬 환경에서 spark session을 생성하는 것부터 시작했다. mvnrepository에서 spakr-sql dependency의 최신 버전을 가져와 무작정 빌드했더니 온갖 에러가 발생했다. 에러 1. Janino Version 관련 에러 ** 에러메시지 : Exception in thread "main" java.lang.NoSuchMethodError: org.codehaus.commons.compiler.Location.(Ljava/lang/String;SS)V Spark sql의 여러 버전을 시도해보고 검색해본 결과 해당 에러는 build.gradle에 다음과 같이 설정함으로써 없앨 수 있었다. // https://mvnrepository.com/artifact/janino/janino..

Apache Spark 2024.04.08

0. Spring boot에서 SPARK 사용

개발 중인 프로그램에선 주로 csv, txt 형식과 같은 정형 데이터 파일을 다룬다. 사용자가 정형 데이터 파일을 서버에 업로드하면 해당 파일에 포함된 데이터들에 대한 다양한 통계를 제공하는 기능을 제공해야 한다. 사용자가 파일을 서버에 업로드 하면 해당 파일의 데이터를 데이터베이스 테이블에 저장한 후, 일련의 전처리 및 통계 도출은 각 테이블의 값을 프로시저나 자바에서 처리하는 기본적인 방식을 사용하고 있었다. 대부분의 사용 사례에서 성능에 큰 문제가 없었지만 간혹 수십 억 건의 데이터를 처리해야 하는 경우엔 대용량의 파일을 읽어 DB에 삽입하고 연산이 필요할 때마다 값들을 읽어와 처리한 후 결과를 업데이트 하는 과정이 너무 오래 걸려 해결 방안이 필요했다. 따라서 대용량 데이터 처리에 유용하다는 Ap..

Apache Spark 2024.04.03
728x90
반응형
LIST