더북(TheBook)

셔플링 과정에서 중간 파일을 디스크에 기록하는 작업도 부담이지만, 결국 셔플링할 데이터를 네트워크로 전송해야 하기 때문에 스파크 잡의 셔플링 횟수를 최소한으로 줄이도록 노력해야 한다.

파티션 단위로 동작하는 RDD 연산에는 mapPartitionsmapPartitionsWithIndex가 있다.

스파크의 조인 연산자는 이름이 같은 RDBMS 조인 연산자(join, leftOuterJoin, rightOuterJoin, fullOuterJoin)와 동일하게 동작한다.

cogroup은 여러 RDD 값을 키로 그루핑하고 각 RDD의 키별 값을 담은 Iterable 객체를 생성한 후, 이 Iterable 객체의 배열을 Pair RDD 값으로 반환한다.

RDD의 데이터를 정렬하는 데 주로 사용하는 변환 연산자에는 sortByKey, sortBy, repartitionAndSortWithinPartition이 있다.

스파크에서는 aggregateByKey, groupByKey(또는 groupBy), combineByKey 등 다양한 Pair RDD 변환 연산자로 데이터를 그루핑할 수 있다.

RDD 계보는 이 RDD와 모든 부모 RDD를 연결한 방향성 비순환 그래프(DAG)로 표현한다.

스파크는 셔플링이 발생하는 지점을 기준으로 스파크 잡 하나를 스테이지(stage) 여럿으로 나눈다.

체크포인팅으로 RDD 계보를 저장할 수 있다.

누적 변수로 스파크 프로그램의 전역 상태를 유지할 수 있다. 또 공유 변수로 태스크 및 파티션이 공통으로 사용하는 데이터를 공유할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.