Spark의 데이터 구조
- RDD (Resillient Distributed Data)
- Dataframe
- Dataset
DataFrame의 등장
DataFrame은 테이블과 유사한 행,열로 구성된 데이터 분산 컬렉션이다.
(관계형 데이터 베이스 구조)
RDD의 성능이슈
- RDD는 메모리나 디스크에 저장 공간이 충분하지 않으면 동작하지 않는다.
- RDD는 스키마(DB구조) 개념이 없다.
(구조화된 데이터와 비구조화 데이터를 함께 저장하여 효율성↓)
- RDD는 기본적으로 직렬화와 Garbage Collection(사용하지 않는 객체를 자동으로 메모리에서 해제)을 사용한다.
이는 메모리 오버헤드를 증가시킴.
- RDD는 별도의 내장된 최적화(Optimize) 엔진이 없다.
사용자가 각 RDD를 최적화 해야한다.
이러한 RDD의 한계를 극복하기 위해 DataFrame이라는 개념을 도입.
DataFrame의 특징
- 구조화된(structed) 데이터 구조 : SparkSQL등을 통해 데이터를 연산할 수 있다.
- GC(Garbeage Collection) 오버헤드 감소 : RDD는 데이터 메모리에 저장하지만
DataFrame은 데이터를 오프-힙(gc영향 받지 않는, RAM영역)에 저장한다.
이를 통해 GC의 오버헤드를 감소시켰다.
- 직렬화 오버헤드 감소
- Flexibility & Sclability : CSV, 카산드라 등 다양한 형태의 데이터를 직접 지원한다.
출처 : https://artist-developer.tistory.com/21?category=962892
[Spark] Spark DataFrame 개념 정리!
artist-developer.tistory.com
'Spark' 카테고리의 다른 글
Spark - 데이터 구조 - RDD (0) | 2024.05.14 |
---|---|
Spark 구조 (1) | 2024.05.14 |
Spark 란? (1) | 2024.05.14 |
scala- SaveMode, StorageLevel (0) | 2024.04.09 |
Spark-submit (1) | 2024.04.09 |