스파크의 데이터구조 개념중 Dataframe과 Dataset에 대하여 정리합니다.
Dataframe
- 기존의 RDD한계 때문에..
- 메모리나 디스크에 저장공간이 충분하지 않을 경우 동작하지 않음
- 구조화 데이터와 비구조화 된 데이터를 함께 저장하여 효율성 감소
- 직렬화(JAVA)와 Garbage Collection을 사용하여 메모리 오버헤드 증가
- 별도 최적화 엔진 별도로 존재하지 않음 > 최적화 작업이 필요
- .. Spark 진영에서는 1.3v 부터 Dataframe 개념을 도입
- Schema RDD라고 불리기도 함
- 기본적으로 Structured Data 구조로 이루어지게 된다. 행과 열이 존재하며 그렇기 때문에 SparkSQL등을 통해 SQL 질의를 처리할 수 있게 된다. (1.3v 이후로 가장 큰 장점)
- GC(Garbage Collection)로 인한 오버헤드 감소: 오프-힙 공간에 저장함으로써 GC의 오버헤드 영향을 감소
- Flexibility & Scalability: csv 등 여러 데이터 형태를 지원
Dataset
- 데이터 프레임을 담아두는 공간, 여러개의 Dataframe이 Dataset 내에 저장됨
- 스파크 1.6v에서 추가되어 2.0에서 Dataframe과 Dataset이 통합
- Dataset[Row]는 Dataframe을 의미
다음글에서는 실제 스파크 튜토리얼을 실행해보기로
레퍼런스
https://artist-developer.tistory.com/21?category=962892
https://bcho.tistory.com/1025?category=563141
https://www.slideshare.net/yongho/rdd-paper-review
반응형
'엔지니어가 되자 > 데이터엔지니어링' 카테고리의 다른 글
AWS EC2에 Docker 환경 배포 작업기 - WAS(Django) / Web Server(Nginx) / Mysql DB (0) | 2024.01.02 |
---|---|
[글또] 스칼라와 친해지기 (개념/설치/문법) (0) | 2021.11.07 |
[글또] Spark 정리하기 (1/2) - 개념, RDD (0) | 2021.09.12 |
[글또] 아마존 레드시프트(AWS Redshift) 이해하기 (0) | 2021.08.29 |
[개발지식] MSA(Micro Service Architecture)란? (0) | 2021.06.14 |