RDD (Resilient Distributed Datasets)
RDD는 변경 불가능하며 파티셔닝된 레코드들의 모음이다. (변경 안되고, 나누어져있는 기록들) RDD를 조작하는 코드를 짠다는 것은 실제로 조작하는 것이 아니라 어떻게 조작할지 기록하는 행위다. Directed acyclic graph(DAG)형태로 Lineage를 기록하는 과정이다.
Transformation과 Actions
RDD Operator에는 지연 처리 방식의 transformation과 즉시 실행 방식의 action 두 가지 operator가 있다. transformation operator는 데이터를 어떻게 조작할지 정의하는 operator(Lineage를 작성하는 operator)이고 action operator는 실제로 작성된 리니지대로 조작을 수행하라는 operator다. 따라서 개발자가 의도한 조작 방식들은 그때그때 수행되지 않으며 action operator를 만났을 때 수행된다. (Lazy-execution)
지연 수행(Lazy execution)을 통해 최적의 수행 계획을 세울 수 있다. 하나 수행하고 다음에 뭐 할지 알려주고, 또 수행하고 다음 계획을 알려줄 때 보다는 어떤 수행을 할 것인지 전체 계획(Execution Plan)을 알려주면 그 계획에 따라 자원을 효율적으로 사용할 수 있기 때문에 효율적인 과정을 만들 수 있다.
참고자료
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
To do
'Data Engineering > Spark' 카테고리의 다른 글
spark-submit (0) | 2022.02.20 |
---|---|
Spark Application Architecture - 스파크의 작동 순서(스파크 클러스터) (0) | 2022.02.08 |
Spark Application Architecture - 실행 모드 (0) | 2022.02.08 |
Spark Application Component - Component (0) | 2022.02.08 |