더북(TheBook)

4.1.1 Pair RDD 생성

 

스파크에서는 다양한 방법으로 Pair RDD를 생성할 수 있다. SparkContext의 일부 메서드는 Pair RDD를 기본으로 반환한다(예: 하둡 파일 형식을 로드하는 hadoopFile, sequenceFile 등). RDD의 keyBy 변환 연산자는 RDD 요소로 키를 생성하는 f 함수를 받고, 각 요소를 (f(요소), 요소) 쌍의 튜플로 매핑한다. 물론 데이터를 2-요소(two-element) 튜플로 직접 변환할 수도 있다.

Note 자바에서 Pair RDD를 생성하는 방법

자바에서 Pair RDD를 생성하려면 JavaPairRDD 클래스를 사용해야 한다. Tuple2[K, V] 객체로 구성된 리스트를 JavaSparkContextparallelizePairs 메서드에 전달하면 분산 JavaPairRDD 객체를 생성할 수 있다. 또는 JavaRDDLike 객체의 mapToPair 변환 연산자에 RDD 각 요소를 Tuple2[K, V] 객체로 매핑하는 함수를 전달해 생성할 수도 있다. 이외에도 Java RDD의 여러 변환 연산자가 JavaPairRDD를 기본으로 반환한다.

 

어떤 방법이든 2-요소 튜플로 RDD를 구성하면 Pair RDD 함수가 RDD에 자동으로 추가된다. 이는 암시적 변환이라는 스칼라의 마법과도 같은 기능 덕분이다. 암시적 변환이 어떻게 동작하는지 기억나지 않는다면 2장에서 설명한 내용을 참고하자. Pair RDD 함수는 PairRDDFunctions 클래스에 정의되어 있으며, 2-요소 튜플로 구성된 RDD는 이 클래스의 객체로 암시적으로 변환된다.

이제 Pair RDD에 암시적으로 어떤 기능들이 추가되는지 알아보자.

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