본문 바로가기
Hadoop/SPARK

spark 연산의 특징

by under_coverzzz 2024. 1. 20.
반응형

분산 데이터의 스파크 연산

-트랜스포메이션과 액션

 

 

트랜스포메이션(Transformation)

트랜스포메이션은 이미 불변성의 특징을 가진 원본 데이터를 수정하지 않고 하나의 스파크 데이터 프레임을 새로운 데이터 프레임으로 변형함.

ex) select()나 filter() 같은 연산은 원본 데이터 프레임을 수정하지 않으며, 대신 새로운 데이터 프레임으로 연산 결과를 만들어 되돌려 줌.

모든 트랜스포메이션은 뒤늦게 평가가 됨.

다시 말해보면 그 결과는 즉시 계산 되는게 아니라 리니지라 불리는 형태로 기록됨.

기록된 리니지는 실행 계획에서 후반쯤에 스파크가 확실한 트랜스포메이션들끼리 재배열하거나 합치거나 해서 더 효율적으로 실행할 수 있도록 최적화 함.

 

 

지연평가

지연 평가는 액션이 실행되는 시점이나 데이터에 실제 접근하는 시점까지 실제 실행을 미루는 스파크의 전략.

하나의 액션은 모든 기록된 트랜스포메이션의 지연 연산을 발동시킴.

Transformation트랜스포메이션은 스파크가 지연 평가하는 연산 종류임.

지연 연산 개념의 큰 이득은 스파크가 연산 쿼리를 분석하고 어디를 최적화할지 알 수 있다는 점임.

최적화는 조인이나 파이프라이닝이 될 수도 있고 연산들을 한 스테이지로 합치거나 반대로 어떤 연산이 셔플이나 클러스터 데이터 교환이 필요한지 파악해 나누거나 하는식으로 이루어 질 수 있음.

 

 

Narrow / Wide 

트랜스 포메이션은 좁은 의존성과 넓은 의존성으로 분류 할 수 있음.

하나의 입력 파티션을 연산하여 하나의 결과 파티션을 내놓는 트랜스포메이션은 어느 것이든 좁은 트랜스포메이션임.

ex) Filter() , Contains()

-하나의 파티션을 처리하여 데이터 교환 없이 결과 파티션을 생성해 냄.

group By(), order By()는 스파크가 넓은 트랜스포메이션을 수행하게 하는데, 이는 다른 파티션으로부터 데이터를 읽어 들여서 합치고 디스크에 쓰는 등의 일을 하기 때문 임.

반응형