Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

짱이 될거야

Spark: RDD, Dataframe, Dataset 본문

면접 준비

Spark: RDD, Dataframe, Dataset

jeong57 2022. 10. 20. 11:17
Dataframe, SQL, Dataset: 고수준 API
RDD: 저수준 API

 

1. RDD(Resillient Distributed Data)

  • Ressillient: 메모리 내부 데이터 손실 시 유실된 파티션 재연산해서 데이터 복구 가능
  • Distributed: 스파크 클러스터를 통해, 데이터가 메모리에 분산되어 저장된다.
  • Data
  • 여러 분산 노드에 걸쳐 저장되는 변경이 불가능한 데이터의 집합
  • 물리적으로 데이터 배치를 세밀하게 제어해야 하는 상황에 사용.

2. Dataframe

  • 행, 열로 구성된 분산 데이터 컬렉션. 관계형 데이터베이스 구조.
  • 데이터 처리: 정형, 비정형 데이터 형식 처리 가능
  • RDD가 있음에도 불구하고 Dataframe이 나온 이유
    • RDD는 메모리나 디스크에 저장 공간이 충분하지 않으면 제대로 동작하지 않는다.
    • 스키마(데이터베이스 구조) 개념이 별도로 없어서 효율성이 떨어진다.
  • 데이터프레임이 등장해서, 구조화된 데이터 처리가 편해졌고 스파크 기반의 SQL이 가능해졌다.

3. Dataset

  • Dataframe API + Dataset API
  • RDD와 유사한 특징을 갖지만 Dataframe과 같이 스키마의 컨셉을 포함하고 있는 데이터.

 

내가 프로젝트에서 활용한 것

  • 초반에 데이터를 가져올 때는 행제목이 없어진다. 그렇기 때문에 schema를 만들고 거기다가 데이터를 넣어서 dataframe을 만들었다.
  • 형태소를 분석하거나 태그 개수를 세는 등의 기능적인 면에서는 dataframe을 사용할 수 없었다.
  • dataframe을 rdd로 변환하고 map을 돌려서 한 셀에 대한 값을 처리했다.
  • 이후 출력 data schema에 맞춰서 다시 dataframe으로 변환하고 최종적으로 csv(관계형 데이터베이스 구조)를 추출했다.

'면접 준비' 카테고리의 다른 글

SQL vs NoSQL  (0) 2022.11.27
REST API vs RESTful API  (0) 2022.10.20
빅데이터 처리 Hadoop, Spark, Python  (0) 2022.10.20
프레임워크, 라이브러리, 플랫폼의 차이  (0) 2022.10.20
Comments