Apache Spark study(3)

jihunnit·2023년 12월 29일
0

데이터엔지니어링

목록 보기
3/3


Spark RDD

RDD는 Resilient Distributed Dataset의 줄임말로 분산 데이터 모델이다.
RDD는 의존성, 파티션, 연산 함수라는 세 가지 특성이 있다.

1. 의존성

어떤 입력을 필요로 하고 현재의 RDD가 어떻게 만들어지는지 스파크에게 가르쳐 주는 것을 의미
결과를 새로 만들어야 할 경우 스파크는 의존성 정보를 참고하고 연산을 다시 반복하여 RDD 다시 만듦
이를 통해 RDD에 유연성을 부여함

2. 파티션

스파크에게 작업을 나눠서 이그제큐터들에게 분산해 파티션별로 병렬 연산을 할 수 있게 함
이를 통해, 작업의 효율성 증진시킴

3. 연산 함수

RDD에 저장되는 데이터를 Iterator[T]형태로 만들어 주는 연산 함수를 가지고 있음


스파크의 구조 확립

위의 스파크의 핵심 특성들에는 연산 함수 및 연산식의 불투명성 등과 같은 문제가 있었음

이를 해결하기 위해, 스파크 2.x부터 여러 개념을 도입함

  • 데이터 분석을 통해 찾은 일상적인 패턴들을 사용하여 연산을 표현(필터링, 선택, 집합연산 등)
  • DSL에서 일반적인 연산 집합 사용
  • 지원하는 정형화 데이터 타입을 사용하여 데이터를 표 형태로 구성할 수 있게 됨

이렇게, 스파크는 구조 확립을 통해 더 나은 성능, 공간 효율성 및 명료한 표현 등 이득을 얻음
ex) 스파크에게 직접 연산을 명령하기 vs 무엇을 할지(작업 자체)를 명령하기

profile
인간은 노력하는 한 방황한다

0개의 댓글