CHAPTER 4. 구조적 API 개요
구조적 API는 비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 유형의 데이터를 처리할 수 있다. 구조적 API에는 세 가지 분산 컬렉션 API가 있다; Dataset, DataFrame, SQL 테이블과 뷰
배치와 스트리밍 처리에서 구조적 API를 사용할 수 있고, 배치 작업과 스트리밍 작업을 서로서로 쉽게 변환할 수 있다.
스키마는 DataFrame의 컬럼명과 데이터 타입을 정의한다. 이는 데이터소스에서 얻거나 직접 정의할 수 있다.
본질적으로 DataFrame은 '비타입형'으로 런타임에 스키마와 비교하며, Dataset은 '타입형'으로 컴파일 타임에 스키마와 비교한다.
스파크의 DataFrame은 Row 타입으로 구성된 Dataset이다. Row 타입을 사용하면 가비지 컬렉션과 객체 초기화 부하가 있는 JVM 3데이터 타입을 사용하는 대신 자체 데이터 포맷을 사용하기 때문에 매우 효율적인 연산이 가능하다.
구조적 API의 실행 과정
- DataFrame/Dataset/SQL을 이용해 코드를 작성
- 스파크가 논리적 실행 계획으로 변환
- 논리적 실행 계획을 물리적 실행 계획으로 변환, 그 과정에서 추가적인 최적화를 할 수 있는지 확인
- 클러스터에서 물리적 실행 계획(RDD 처리)을 실행
CHAPTER 5. 구조적 API 기본 연산
DataFrame은 Row 타입의 레코드와 각 레코드에 수행할 연산 표현식을 나타내는 여러 컬럼으로 구성된다. 스키마는 각 컬럼명과 데이터 타입을 정의한다. DataFrame의 파티셔닝은 DataFrame이나 Dataset이 클러스터에서 물리적으로 배치되는 형태를 정의한다. 파티셔닝 스키마는 파티션을 배치한느 방법을 정의한다.
컬럼과 표현식
스파크의 컬럼은 스프레드시트, R의 dataframe, pandas의 DataFrame 컬럼과 유사하다. 사용자는 표현식으로 DataFrame의 컬럼을 선택, 조작, 제거할 수 있다.
표현식은 DataFrame 레코드의 여러 값에 대한 트랜스포메이션 집합을 의미한다. 표현식은 expr 함수로 가장 간단히 사용할 수 있다.
DataFrame 생성하기
CHAPTER 6. 다양한 데이터 타입 다루기
CHAPTER 7. 집계 연산
CHAPTER 8. 조인
CHAPTER 9. 데이터소스
CHAPTER 10. 스파크 SQL
위 챕터는 기존 SQL 지식으로 대체 가능한 부분으로 생각되어 생략합니다.
'Data Engineering > Spark' 카테고리의 다른 글
[스파크 완벽 가이드] Part 3. 저수준 API (0) | 2022.04.11 |
---|---|
[스파크 완벽 가이드] Part 1. 빅데이터와 스파크 간단히 살펴보기 (0) | 2022.04.10 |