Apache Spark는 클러스터 환경에서 데이터를 분산 처리하는데 매우 효율적이고 강력한 라이브러리이다. 제공하는 기능들은 데이터를 빠르게 읽고 처리하는데 큰 도움을 준다. 비록 클러스터 환경은 아니지만 spark에서 제공하는 기능들을 사용하면 대용량 데이터의 처리 속도를 크게 향상시킬 수 있을 것 같아 현재 개발중인 프로젝트에 도입했다.
우선 서버의 특정 경로에 존재하는 csv파일을 sparkSession을 통해 읽어와야 한다.
SparkSession의 Dataset<Row>는 Apache Spark에서 데이터를 다루는 핵심적인 구조이다. 여기서 Dataset<Row>는 테이블 형태의 구조화된 데이터를 나타내며, 각 행은 Row 객체로 표현된다. 이 구조는 SQL과 유사한 방식으로 데이터를 쿼리하고 조작할 수 있도록 한다.
SparkSession은 Spark 애플리케이션의 진입점으로, Spark 2.0부터 도입되었다. 이는 RDDs, DataFrames, 그리고 Datasets을 포함한 Spark의 모든 기능에 접근할 수 있는 통합 인터페이스를 제공한다. SparkSession을 사용하면 다양한 데이터 소스에서 데이터를 읽고, SQL 쿼리를 실행하며, DataFrames 및 Datasets를 생성하고, 분산 데이터셋에 대한 작업을 효율적으로 수행할 수 있다.
지난 게시글에서 작성했던 sparkConfig를 통해 필요한 곳에서 sparkSessoin을 생성한 후 spark.read() 함수를 이용해 파일을 불러와보자.
import org.apache.spark.sql.SparkSession;
SparkSession spark = sparkConfig.sparkSession();
String filePath = "/my_diretory/myFile.csv";
String encoding = "UTF8";
//파일 불러오기
Dataset<Row> df = spark.read()
.option("header", "true")
.option("encoding",encoding)
.csv(joinInfoFilePath);
df.show();
위의 코드를 실행하면 filePath에 존재하는 파일을 불러와 데이터의 상위 20개의 row를 보여준다. Dataset<Row>의 형태로 읽어온 데이터에 대해 정말 다양하고 효과적인 기능들을 제공한다. 다음엔 해당 기능들에 대해 정리해보자
'Apache Spark' 카테고리의 다른 글
1. Spark Session 생성하기 - Gradle 설정 (0) | 2024.04.08 |
---|---|
0. Spring boot에서 SPARK 사용 (0) | 2024.04.03 |