더북(TheBook)

4.6 요약

 

Pair RDD는 키와 값 튜플로 구성된 RDD다.

스칼라의 Pair RDD는 Pair RDD에 특화된 함수들이 구현된 PairRDDFunctions 클래스의 객체로 암시적 변환된다.

countByKey는 각 키의 출현 횟수를 담은 Map 객체를 반환한다.

Pair RDD의 mapValues를 사용해 키를 그대로 두고 값만 변경할 수 있다.

flatMapValues는 각 키 값을 0개 또는 한 개 이상의 값으로 매핑해 RDD에 포함된 요소 개수를 변경할 수 있다.

reduceByKeyfoldByKey는 각 키의 모든 값을 동일한 타입의 단일 값으로 병합한다.

aggregateByKey도 값을 병합하는 데 사용하지만, reduceByKeyfoldByKey와 달리 값 타입을 변경할 수 있다.

스파크의 데이터 파티셔닝은 데이터를 여러 클러스터 노드로 분할하는 메커니즘이다.

스파크에서 RDD의 파티션 개수는 매우 중요한데, 이는 파티션 개수가 데이터를 클러스터에 분배하는 과정에 영향을 미칠 뿐만 아니라 해당 RDD에 변환 연산을 실행할 태스크 개수와 직결되기 때문이다.

RDD의 데이터 파티셔닝은 RDD의 각 요소에 파티션 번호를 할당하는 Partitioner 객체로 수행한다. 스파크는 Partitioner의 구현체(implementation)HashPartitionerRangePartitioner를 제공한다.

스파크의 셔플링은 파티션 간 물리적인 데이터 이동을 의미한다. 셔플링은 새로운 RDD 파티션을 만들려고 여러 파티션의 데이터를 합쳐야 할 때 발생한다.

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