- 전체
- Sample DB
- database modeling
- [표준 SQL] Standard SQL
- G-SQL
- 10-Min
- ORACLE
- MS SQLserver
- MySQL
- SQLite
- postgreSQL
- 데이터아키텍처전문가 - 국가공인자격
- 데이터 분석 전문가 [ADP]
- [국가공인] SQL 개발자/전문가
- NoSQL
- hadoop
- hadoop eco system
- big data (빅데이터)
- stat(통계) R 언어
- XML DB & XQuery
- spark
- DataBase Tool
- 데이터분석 & 데이터사이언스
- Engineer Quality Management
- [기계학습] machine learning
- 데이터 수집 및 전처리
- 국가기술자격 빅데이터분석기사
- 암호화폐 (비트코인, cryptocurrency, bitcoin)
spark [Spark][MSA] Apache Spark - Key/Value Paris (Pair RDD)
2021.03.21 21:02
[Spark][MSA] Apache Spark - Key/Value Paris (Pair RDD)
Spark Key/Value Pairs
조대협
http://bcho.tistory.com
RDD에는 어떤 데이타 형식이라던지 저장이 가능한데, 그중에서 Pair RDD라는 RDD가 있다. 이 RDD는 Key-Value 형태로 데이타를 저장하기 때문에, 병렬 데이타 처리 부분에서 그룹핑과 같은 추가적인 기능을 사용할 수 있다.
예를 들어 reduceByKey 와 같이 특정 키를 중심으로 데이타 연산 (각 키 값 기반으로 합이나 평균을 구한다던가) key 기반으로 join 을 한다던가와 같은 그룹핑 연산에 유용하게 사용할 수 있다.
Pair RDD를 생성하는 방법은 다음과 같다.
Java
mapToPair나 flatMapToPair 라는 메서드를 사용하면 된다.
mapToPair등의 함수를 이용할때, 아래와 같이 람다 표현식을 사용하는 방식이 있고
RDD.mapToParis( d-> new Tuple2(key,value))
(d는 RDD에서 읽어오는 값. Key는 새로운 RDD를 생성할때, 해당 Tuple의 키값, value는 해당 Tuple의 Value값)
JavaRDD<String> lines = sc.textFile("data.txt");JavaPairRDD<String, Integer> pairs = lines.mapToPair(s -> new Tuple2(s, 1));
또는 아래와 같이, Pair함수를 정의한 후에, Pair 함수를 mapToPair함수등에 넘기는 방법이 있다.
아래는 텍스트 라인에서 첫번째 단어를 Key로하고, 해당 라인을 Value로 하는 코드 예제이다.
PairFunction<String, String, String> keyData =new PairFunction<String, String, String>() {public Tuple2<String, String> call(String x) {return new Tuple2(x.split(" ")[0], x);}};
JavaPairRDD<String, String> pairs = lines.mapToPair(keyData);* Learning spark 코드 참조
Python
lines = sc.textFile("data.txt")
pairs = lines.map(lambda s: (s, 1))
counts = pairs.reduceByKey(lambda a, b: a + b)
출처: https://bcho.tistory.com/1030 [조대협의 블로그]
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

