[스파크 완벽 가이드] Part 2. 구조적 API: DataFrame, SQL, Dataset

2022. 4. 10. 02:43·Data Engineering/Spark

CHAPTER 4. 구조적 API 개요

구조적 API는 비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 유형의 데이터를 처리할 수 있다. 구조적 API에는 세 가지 분산 컬렉션 API가 있다; Dataset, DataFrame, SQL 테이블과 뷰

 

배치와 스트리밍 처리에서 구조적 API를 사용할 수 있고, 배치 작업과 스트리밍 작업을 서로서로 쉽게 변환할 수 있다.

 

스키마는 DataFrame의 컬럼명과 데이터 타입을 정의한다. 이는 데이터소스에서 얻거나 직접 정의할 수 있다.

본질적으로 DataFrame은 '비타입형'으로 런타임에 스키마와 비교하며, Dataset은 '타입형'으로 컴파일 타임에 스키마와 비교한다.

 

스파크의 DataFrame은 Row 타입으로 구성된 Dataset이다. Row 타입을 사용하면 가비지 컬렉션과 객체 초기화 부하가 있는 JVM 3데이터 타입을 사용하는 대신 자체 데이터 포맷을 사용하기 때문에 매우 효율적인 연산이 가능하다.

 

구조적 API의 실행 과정

  1. DataFrame/Dataset/SQL을 이용해 코드를 작성
  2. 스파크가 논리적 실행 계획으로 변환
  3. 논리적 실행 계획을 물리적 실행 계획으로 변환, 그 과정에서 추가적인 최적화를 할 수 있는지 확인
  4. 클러스터에서 물리적 실행 계획(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  (1) 2022.04.11
[스파크 완벽 가이드] Part 1. 빅데이터와 스파크 간단히 살펴보기  (1) 2022.04.10
'Data Engineering/Spark' 카테고리의 다른 글
  • [스파크 완벽 가이드] Part 3. 저수준 API
  • [스파크 완벽 가이드] Part 1. 빅데이터와 스파크 간단히 살펴보기
pfldy2850
pfldy2850
인공지능의 서비스화와 현실화에 관심이 많은 엔지니어입니다.
  • pfldy2850
    DEV.DY
    Github LinkedIn
  • 전체
    오늘
    어제
    • All (109)
      • AI (71)
        • 어플리케이션 개발 (12)
        • 모델 인퍼런스 (9)
        • 검색 시스템 (11)
        • MLOps (8)
        • 기술,논문 리뷰 (7)
        • Lecture notes (10)
        • 오픈소스 릴리즈 노트 (14)
      • Infra (5)
        • Kubernetes (2)
        • Service Mesh (1)
        • Service Proxy (1)
        • Storage (1)
      • Data Engineering (4)
        • Spark (3)
        • Kafka (1)
        • Delta Lake (0)
      • 컴퓨터 공학 (2)
        • 소프트웨어 공학 (2)
      • 개발 (16)
        • ReactJS (8)
        • NodeJS (2)
        • Python (4)
        • Pytorch (1)
        • git (1)
      • 영어공부 (2)
        • GPT로 영어 회화 공부 (2)
      • 활동 (2)
        • 2017 NDC (2)
      • 기타 (1)
      • 레거시 (6)
        • OS (6)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
pfldy2850
[스파크 완벽 가이드] Part 2. 구조적 API: DataFrame, SQL, Dataset
상단으로

티스토리툴바