짱이 될거야
Spark: RDD, Dataframe, Dataset 본문
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