본문 바로가기
데엔(Data-Engineering)/스파크(Spark)

[Spark] 02. 스파크 기초 (RDD란)

by KwonSoonBin 2023. 2. 6.

RDD란

Resilient Distriduted Dataset : 탄력적 분산 데이터셋

 

왜 RDD를 사용하나?

  • 유연하다
  • 짧은 코드로 할 수 있는게 많다
  • 개발 시 무엇 보다는 어떻게에 대해 더 생각한다.(how-to)
    • Lazy execution
#RDD만드는 과정

sc = SparkContext(conf=conf)

lines = sc.textFile(f"file:///{directory}/{filename}")

#위 코드에서는 lines 객체가 RDD

5개 특징

1. 추상화

데이터는 클러스터에 흩어져있지만 하나의 파일인것 처럼 사용 가능하다.

lines = sc.textFile(f"file:///{directory}/{filename}")

#불려온 파일은 여러 노드에 저장되어 있지만, lines 객체를 통해 하나의 파일인것 처럼 사용 가능

 

2. Resilient & Immutable

탄력적이고 불변하는 성질이 있다.

- 다양한 문제로 부터 자유롭다(노드장애 및 에러,네트워크 장애, 하드웨어&메모리문제, 기타 문제)

Node 1 연산중에 문제 발생 시 이전 기록을 통해 다시 복원 후 Node 2에서 연산하면 된다. => 탄력적

 

 

3.Type-safe

- 컴파일 시 Type판별할 수 있어 문제를 빨리 발견할 수 있다.

 

4.Unstructured /  Structured Data

 구조화된 데이터 or 비구조화된(law)데이터 둘 다 담을 수 있다. 

ex) 로그, 자연어 / RDB, DataFtame 

 

5.Lazy

- 결과가 필요할 때 까지 연산을 진행하지 않는다.

* spark Operation은 두 가지로 나뉜다. 

spark Operation = Transform + Action

댓글