[Spark] 데이터프레임, 데이터셋, RDD

Peter·2021년 7월 20일
0

Spark

목록 보기
2/11

Spark 세션

  • Spark 세션을 만드는 것이 Spark 프로그램의 시작
  • appName을 통해 세션의 이름을 정하고
  • .config를 통해 세션에 적용할 세부적인 옵션을 다룸
  • .getOrCreate() 는 appName을 보고 기존에 같은 내용이 있으면 get 하고 없으면 create해줌

Spark 데이터 구조

RDD(Resilient Distributed Dataset)

  • 로우레벨 데이터로 클러스터내의 서번의 분산된 데이터를 지칭
  • 레코드별로 존재
  • 구조화된 데이터나 비구조화된 데이터 모두 지원

Dataframe과 Dataset

  • RDD위에 만들어지는 하이레벨 데이터로 RDD 와는 달리 필드 정보를 가지고 있음(테이블)
  • Dataset은 Dataframe과는 달리 타입 정보가 존재하며 컴파일 언어에서 사용가능
    - 컴파일 언어: Scala/Java에서 사용가능
  • PySpark에서는 Dataframe을 사용
    - SparkSQL을 사용하는 것이 더 일반적

Spark 데이터 구조 - RDD

변경이 불가능한 분산 저장된 데이터

  • RDD는 다수의 파티션으로 구성되고 Spark 클러스터내 서버들에 나눠 저장
  • 로우레벨의 함수형 변환 지원
  • RDD가 아닌 일반 파이썬 데이터는 parallelize 함수로 RDD로 변환

Spark 데이터 구조 - 데이터 프레임

데이터 프레임도 RDD 처럼 변경이 불가한 분산 저장된 데이터

RDD와는 다르게 관계형 데이터베이스 테이블처럼 컬럼으로 나눠 저장

  • 판다스의 데이터 프레임과 거의 흡사
  • 데이터 프레임은 다양한 데이터소스 지원: 파일, Hive, 외부 데이터베이스, RDD 등등

스칼라, 자바, R, 파이썬과 같은 언어에서 지원

Spark 데이터 구조 - 데이터 셋

  • 데이터 셋은 타입이 있는 컴파일 언어에서만 사용 가능
  • 자바와 스칼라에서만 지원되며 파이썬에서는 사용 불가
profile
컴퓨터가 좋아

0개의 댓글