RDD
Resilient Distributed Dataset
탄력적인 분산 데이터셋?
RDD의 특징 5가지
- 데이터 추상화
클러스터에 흩어진 파일들을 하나의 파일인것 처럼 사용이 가능하다
- Resilient & Immutable(탄력적이며 불변하는 성질)
Immutable이란
RDD1이 변환을 거치면 RDD1이 바뀌는게 아닌 새로운 RDD2가 만들어지는 것으로 변환을 거칠 때 마다 기록을 남김
RDD의 변환 과정은 하나의 비순환 그래프로 그릴 수 있으며 문제가 생길 경우 전 RDD로 쉽게 돌아갈 수 있음
- Type-safe
컴파일 시 Type을 판별할 수 있어 문제를 일찍 발견할 수 있다 (개발자 친화적)
- 정형/비정형 데이터
정형/비정형 데이터 둘 다 담을 수 있다
- Lazy Evaluation
T = Transformation (변환)
A = Action (액션)
액션을 할 때 까지 변환은 실행되지 않는다.
Spark Operation
Spark Operation = Transformation + Action
왜 RDD를 쓰는가
- 유연하다
- 짧은 코드로 할 수 있는게 많다
- 개발할 때 무엇보다는 어떻게에 대해 더 생각하게 된다.(how-to)
-게으른 연산 덕분에 데이터가 어떻게 변환될지 생각하게 된다
- 데이터가 지나갈 길을 닦는 느낌