본문 바로가기

엔지니어가 되자/데이터엔지니어링

[글또] Spark 정리하기(2/2) - Dataframe, Dataset

 

 

 

스파크의 데이터구조 개념중 Dataframe과 Dataset에 대하여 정리합니다.


Spark 데이터 형태의 변천사

 

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 

 

[Spark] Spark DataFrame 개념 정리!

안녕하세요. 저번 시간, Spark RDD에 이어, 스파크의 두번째 데이터 구조인 DataFrame 으로 돌아온, 개발자 김모씨입니다. 혹시 스파크의 가장 기본적인 데이터 구조인 RDD를 설명하는 포스팅을 아직

artist-developer.tistory.com

https://wikidocs.net/28377

 

2.RDD, 데이타프레임, 데이타셋

스파크 애플리케이션 구현 방법은 스파크 v1에서 발표한 RDD를 이용하는 방법[^1]과 스파크 v2에서 RDD의 단점으로 개선하여 발표한 데이타셋(Dataset)과 데이터프 ...

wikidocs.net

https://bcho.tistory.com/1025?category=563141 

 

Apache Spark 클러스터 구조

Apache Spark Cluster 구조 스팍의 기본 구조는 다음과 같다. 스팍 프로그램은 일반적으로 “Driver Program”이라고 하는데, 이 Driver Program 은 여러개의 병렬적인 작업으로 나뉘어져사 Spark의 Worker Node(..

bcho.tistory.com

https://key4920.github.io/2021/02/mac-os%EC%97%90-%EC%8A%A4%ED%8C%8C%ED%81%AC-3.0-%EC%84%A4%EC%B9%98-%EB%B0%8F-pyspark-%EC%8B%9C%EC%9E%91/

 

Mac OS에 스파크 3.0 설치 및 pyspark 시작

맥북 Mac OS에 Spark를 설치해보고 주피터 노트북에서 pyspark를 실행해보자!

key4920.github.io

https://www.slideshare.net/yongho/rdd-paper-review

 

Spark 의 핵심은 무엇인가? RDD! (RDD paper review)

요즘 Hadoop 보다 더 뜨고 있는 Spark. 그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다. RDD가 어떻게 동작하는지, 원 논문을 리뷰하며

www.slideshare.net

 

반응형