욱 연구소

슬기로운 개발생활

프로그래밍/Spark

[pyspark] 스파크 완벽 가이드 - 구조적 API 기본개념과 용어

wook-lab 2022. 3. 16. 14:11
반응형

구조적 API란?

비정형 로그 파일부터 반정형 CSV 파일, 매우 정형적인 파케이(Parquet) 파일까지 다양한 데이터를 처리할 수 있다.
배치(batch)와 스트리밍(streaming) 처리에서 구조적 API를 사용할 수 있음.

 

구조적 API의 세 가지 분산 컬렉션 API

  • Dataset
  • DataFrame
  • SQL 테이블과 뷰

 

DataFrame과 Dataset

공통점

  • DataFrame과 Dataset은 잘 정의된 로우와 컬럼을 가지는 분산 테이블 형태의 컬렉션
  • 결과를 생성하기 위해 어떤 데이터에 어떤 연산을 적용해야 하는지 정의하는 지연 연산의 실행 계획이며, 불변성을 가짐

차이점

  • DataFrame = 비타입형
    • 데이터 타입이 존재하지 않는 것은 아님
    • 스키마에 명시된 데이터 타입의 일치 여부를 런타임에 확인
    • Row타입으로 구성된 Dataset
      • Row타입은 연산에 최적화된 인메모리 포맷의 내부적인 표현방식
      • Row타입은 JVM 데이터 타입 대신 자체 데이터 포맷을 사용 -> 매울 효울적인 연산가능
    • DataFrame을 사용하면 스파크의 최적화 된 내부 포맷 사용이 가능
  • Dataset = 타입형
    • 스키마에 명시된 데이터 타입의 일치 여부를 컴파일 타임에 확인

 

스키마(Schema)

DataFrame의 컬럼명과 데이터 타입을 정의

컬럼(Column)

단순 데이터 타입(정수형, 문자열), 복합 데이터 타입(배열, 맵, null)을 표현

로우(Row)

데이터 레코드

 

 

 

 

 

반응형