RDD - 탄력적인 분산 데이터셋이란?
스파크의 데이터 구조는 크게 3종류가 있습니다.
- RDD (Resilient Distributed Dataset)
- Dataframe
- Dataset
RDD는 그 중 가장 처음으로 도입된 데이터 구조로 Spark 1.0부터 도입된 가장 기초적인 데이터 구조입니다. (현재 Spark 3.0)
이름을 풀어보면 이렇게 해석이 가능하겠습니다.
Resilient(탄력적인, 회복력 있는, 변하지 않는) : 메모리 내부에서 데이터가 손실 시 유실된 파티션을 재연산해 복구할 수 있음
Distributed(분산된) : 스파크 클러스터를 통하여, 메모리에 분산되어 저장됨
Data : 파일, 정보 등
RDD 특징 5가지
1. 데이터 추상화
데이터는 클러스터에 흩어져있지만 하나의 파일인것 처럼 사용이 가능합니다. 즉, 분산처리에 적합한 데이터셋이란걸 의미합니다.
2. Resilient & Immutable
탄력적이고 불변하는 성질이 있습니다.
데이터가 여러 노드에서 연산중에 노드하나에 장애가 발생해도 데이터가 불변, 즉 Immutable하면 문제가 일어날때 복원이 가능해집니다.
이러한 성질을 탄력적(Resilient)이라고 말할 수 있겠습니다.
3. Type-safe
컴파일시 Type을 판별할 수 있어 문제를 일찍 발견할 수 있습니다.
4. Unstructured / Structured Data
정형, 비정형 데이터를 담을 수 있습니다.
Unstructured Data - 로그, 자연어
Structured Data - RDB, DataFrame
5. Lazy
게으르다 - 결과가 필요할때까지 연산을 하지 않습니다.
Spark Operation은 Transform과 Action 2가지로 나눠집니다.
Transform과정은 Action이 주어졌을 때 실행이 됩니다.
왜 RDD를 쓸까?
- 유연하다.
- 짧은 코드로 할 수 있는게 많다.
- 개발할 때 무엇보다는 어떻게에 대해 더 생각하게 한다 (how-to)
- 게으른 연산 덕분에 데이터가 어떻게 변환될지 생각하게 된다.
- 데이터가 지나갈 길을 닦는 느낌
'Data Engineering > Spark' 카테고리의 다른 글
[Spark] 스파크 Window 로컬 환경 설치하기 (0) | 2025.05.26 |
---|---|
[Spark] 스파크 RDD란? (Resilient Distributed Dataset) - 2 (0) | 2025.05.26 |
[Spark] 스파크의 특징과 기본 개념 - 2 (0) | 2025.05.17 |
[Spark] 스파크의 특징과 기본 개념 - 1 (0) | 2025.05.17 |
[Spark] Spark SQL, DataFrame, Datasets (Structured Data) (0) | 2022.06.21 |