pyspark(16)
-
[Spark] Transformations & Actions 함수
Spark Operation = Transformations + Actions Tranformations는 결괏값으로 새로운 RDD를 반환하고, Lazy Execution을 한다는 점이 특징이다. Actions는 결괏값을 연산하여 출력하거나 저장하며, Eager Execution을 한다는 점이 특징이다. Transformations와 Actions 함수들을 더 자세히 살펴보자. conf 설정 import os import findspark findspark.init(os.environ.get('SPARK_HOME')) import pyspark from pyspark import SparkConf, SparkContext import pandas as pd import faulthandler faulth..
2022.05.01 -
[Spark] Key-Value RDD 개념 및 코드
Key-Value RDD (Key, Value) 쌍을 가지는 RDD로, Paris RDD라고 불리기도 한다. Single Value RDD와 Key-Value RDD는 활용 양상이 조금 다른데, 다음과 같다. Single Value RDD 예) 특정 단어 수 세기 Key-Value RDD 예) 특정 드라마가 받은 별점의 평균 RDD가 무엇인지 모르겠다면? https://mengu.tistory.com/27?category=932924 [Spark] RDD 개념 및 코드 RDD(Resilient Distributed Dataset)란? 직역하면 탄력적인 분산 데이터셋이다. 말 그대로 데이터를 클러스터에 분산하여 저장하며, 그런 데이터를 탄력적으로 이용(이슈 발생 시 과거 데이터로 돌아가기 mengu.tis..
2022.05.01 -
[Spark] 분산/병렬 처리할 때 주의할 점
앞 포스팅에서 언급했듯이, Spark는 분산/병렬 처리를 지원한다. 하지만 분산/병렬 처리가 된다고 마냥 믿고 쓰기만 해서는 안된다. 분산/병렬 처리의 성능을 올리고, 비용을 줄이기 위해선 생각해줘야 할 것들이 몇몇 있다. 지금부터 그 요소들을 살펴보고 어떻게 코딩해야 할지 방향을 짚어보자. Distributed Data-Parallel 먼저 Spark의 핵심인 'Distributed Data-Parallel'에 대해서 알아보자. 분산된 환경에서의 병렬 처리란? 1) 데이터를 여러 개로 나누어 여러 노드로 보낸다. 2) 각 노드에서 독립적으로 task를 시행. 3) 각자 만든 결괏값을 합친다. 이 일련의 과정이 분산된 환경에서의 병렬 처리이며, 그림으로 표현하면 다음과 같다. Spark를 처음 접한다면,..
2022.05.01 -
[Spark] Apache Spark 개념 및 버전
Apache Spark에 대해 알아보자. Apache Spark란 빅데이터 처리를 위한 오픈소스 엔진(고속 분산처리)이다. 이미 아마존, 우버, 넷플릭스 등 다양한 기업에서 쓰이고 있다. Apache Spark 등장 배경 데이터가 쏟아지면서 3가지 문제를 맞이한다. 1. 데이터의 크기가 기하급수적으로 증가한다. 2. 데이터가 생성되는 속도가 어마어마하게 증가했다. 3. 데이터의 종류도 증가했다. 물론 데이터를 통해 인사이트를 얻고자 하는 사람 입장에선 좋을 수도 있다. 하지만 분석 전에 데이터를 처리하고 저장해야 하는 입장에선 문제가 아닐 수 없다. 데이터 크기가 증가하면 저장 비용이 증가하고, 생성되는 속도가 증가하면 저장하는 속도가 따라잡지 못해 알맞게 처리할 시간을 확보하지 못한다. 종류가 증가하면..
2022.04.23