그룹핑시 데이터를 한 노드에서 다른노드로 옮길때 발생
성능을 많이 저하시킴 여러 네트워크 연산을 일으킴
groupBykey() 할때도 발생한다.
여러 노드에서 데이터를 주고 받게됨(네트워크연산)
shuffle을 일으킬 수 있는 작업들
partition을 이용하여 shuffle 최소화 —> 성능 최적화
위 방법 둘다 파티션과 캐싱을 조합해서 최대한 로컬환경(각각의 파티션)에서 연산이 실행되도록 하는 방식
데이터를 최대한 균일하게 퍼트리고 검색 성능을 향상 시키는것( parallel RDD )
RDD는 쪼개져서 여러 파티션에 저장됨
하나의 파티션은 하나의 노드(서버)에
하나의 서버는 여러 파티션을 가질 수 있음
파티션의 크기와 배치는 자유롭게 설정 가능하며 성능에 큰 영향을 미침
Key-Value RDD를 사용 할때만 의미가 있다