Spark

Spark - 데이터 구조 - DataFrame

개발 일기92 2024. 5. 14. 15:40

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