데이터 표현 방식
RDD
- 구조화되지 않은 데이터도 처리할 수 있음
- 사용자 정의 함수를 통해 데이터 변환하는 데 유연
DataFrame
- RDD 위에 구조화된 데이터 추가한 것
- 행과 열로 이루어져 있으며 Pandas의 Dataframe과 유사
- 명확한 스키마를 가지고 있기에 데이터 처리 및 변환이 직관적이고 효율적
API 수준
RDD
- 낮은 수준의 API 제공
- 사용자에게 더 많은 제어권 제공
- map, reduce, filter 등의 함수형 프로그래밍 연산자 이용해 변환
DataFrame
- 높은 수준의 API 제공
- SQL 쿼리와 유사한 방식으로 데이터 처리 -> 직관적
- 최적화된 실행 계획을 통해 효율적으로 동작
성능 최적화
RDD
- 사용자 정의함수를 사용하기에 최적화 여지가 적음
- 실행 계획 최적화하지 않음
DataFrame
- Catalyst Optimizer라는 최적화 엔진을 사용해 실행계획 최적화
- -> RDD 보다 빠르고 효율적으로 데이터 처리 가능