• 셔플링 과정에서 중간 파일을 디스크에 기록하는 작업도 부담이지만, 결국 셔플링할 데이터를 네트워크로 전송해야 하기 때문에 스파크 잡의 셔플링 횟수를 최소한으로 줄이도록 노력해야 한다.
• 파티션 단위로 동작하는 RDD 연산에는 mapPartitions와 mapPartitionsWithIndex가 있다.
• 스파크의 조인 연산자는 이름이 같은 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 계보를 저장할 수 있다.
• 누적 변수로 스파크 프로그램의 전역 상태를 유지할 수 있다. 또 공유 변수로 태스크 및 파티션이 공통으로 사용하는 데이터를 공유할 수 있다.