Chapter 13 RDD 고급개념 Key-Value 형태의 RDD RDD에는 key-value형태의 데이터를 다룰 수 있는 다양한 메서드가 존재한다. 이러한 메서드들은 ByKey 형태의 이름을 가지며 PairRDD타입만 사용할 수 있다. PairRDD타입을 만드는 가장 간단한 방법은 RDD에 Map연산을 수행해 key-value구조로 만드는 것이다. > keyBy() : 현재 값으로부터 키를 생성 mapValues() : (튜플 사용시)튜플의 첫 번째 요소를 key, 두 번째 요소를 value로 지정 collect() : key나 value 전체 추출 lookup() : 특정 key에 대한 결과 찾기 sampleByKey() : RDD를 한번만 처리하면서 무작위 샘플링을 사용하여 RDD 샘플 생성 집계 > countByKey() : 각 key의 아이템 수를 구하고 로컬 맵으로 결과를 수집 groupByKey() : 해당 키와 관련된 모든 값을 메모리
Chapter 12 RDD 저수준 API란? 스파크에는 두 종류의 저수준 API가 있다. 분산 데이터 처리를 위한 RDD와 브로드캐스트 변수와 어큐뮬레이터처럼 분산형 공유 변수를 배포하고 다루기 위한 API가 있다. 저수준 API를 사용하는 상황은 다음과 같다. > 고수준 API에서 제공하지 않는 기능이 필요한 경우 RDD를 사용해 기존의 개발된 코드를 유지해야하는 경우 사용자가 정의한 공유 변수를 다뤄야 하는 경우 저수준 API는 SparkContext를 활용하여 진입한다. RDD란? 간단하게 RDD를 정의하면 불변성을 가지며 병렬로 처리할 수 있는 파티셔닝된 레코드의 모음이다. 물리적으로 분산된 데이터에 세부적인 제어가 필요한 경우 RDD를 사용하는 것이 가장 적합하다. DataFrame은 구조화된 로우인 반면, RDD는 프로그래머가 선택하는 자바, 스칼라, 파이썬의 객체이다. 특정 언어의 개체인 만큼 완벽하게 제어할 수 있고, 사용자가 원하