본문 바로가기
Big Data/Apache Spark

[Spark] Spark Evalution

by seaweed_one 2022. 12. 13.
728x90

Spark 에는 크게 두 가지 종류의 연산이 존재합니다.

Transformation 과 Action 인데요, 두 가지로 나눠진 이유와 그 역할은 무엇인지 알아보겠습니다. 

 

연산 분류 이유

두 가지 종류의 연산이 존재하는 이유를 이해하기 위해선 먼저 Spark 의 특징인 Lazy Evalution 의 개념을 알고 가야 합니다.

Lazy Evalution 을 한국어로 번역하자면 게으른 연산이라고 해석할 수 있는데요.

게으른 연산 기법으로 인하여 Spark 는 연산 실행 계획 최적화가 가능합니다.

사용자가 입력한 연산들을 즉시 수행하지 않고 메타데이터에 연산이 요청되었다는 사실만 기록하고 연산의 가장 최적의 수행 방법을 수립해둡니다.

action 함수가 호출되기 전까지는 실제 데이터 로딩 혹은 연산이 이루어지지 않는 것이죠.

 

그럼 실제 연산은 언제 이루어질까요?

바로 Action 연산이 호출되었을 때입니다.

Action 을 사용할 때마다 매번 새로운 연산이 수행되고 이 구조는 데이터를 가진 머신에 장애가 생겼다 하더라도 유실된 파티션을 재연산하여 복구할 수 있습니다.

이제 연산이 크게 두 종류로 나눠진 이유는 알게 되었으니 이제 각 연산들이 하는 역할을 대략적으로 알아보겠습니다.

 

연산의 역할 

Transformation 

존재하는 RDD 에 새로운 RDD 를 생성합니다.

Action 

실제 연산 작업을 진행합니다.

함수 호출 시 excutor 가 driver 에 전달한 task 를 수행합니다.

RDD 를 기초로 결과 값을 계산하고 그 값을 Driver Program 에 돌려주거나 외부에 저장합니다.

 

아래 이미지는 Transformation 과 Action 에 해당되는 함수들을 분류한 이미지입니다. 

Transformation & Action

Spark 연산의 종류와 기능을 알아보았습니다.

Spark 사용 시 해당 기능들을 고려하여 사용하시길 바랍니다.

728x90

'Big Data > Apache Spark' 카테고리의 다른 글

[Spark] Spark Cluster Manager  (2) 2022.12.16
[Spark] Spark Deploy Mode  (0) 2022.12.16
[Spark] Spark Job  (0) 2022.12.15
[Spark] Spark Partitioning  (0) 2022.12.11
[Spark] Spark 란?  (0) 2022.12.11