데브코스 TIL/빅데이터, 스트리밍 데이터 처리 32

Spark 프로그래밍 실습 3

실습 실습 3. 텍스트를 파싱해서 구조화된 데이터로 변환하기 입력 데이터 : 텍스트 데이터 출력 데이터 : 구조화된 데이터 Regex 이용 # 파일 다운로드 !wget https://s3-geospatial.s3.us-west-2.amazonaws.com/transfer_cost.txt from pyspark.sql import SparkSession from pyspark import SparkConf conf = SparkConf() conf.set("spark.app.name", "PySpark DataFrame #3") conf.set("spark.master", "local[*]") spark = SparkSession.builder\ .config(conf=conf)\ .getOrCreate(..

Spark 프로그래밍 실습 1/2

실습 실습 1. 헤더가 없는 CSV 파일 처리하기 입력 데이터 : 헤더 없는 CSV 파일 데이터에 스키마 지정 SparkConf 사용 measure_type값이 TMIN인 레코드의 stationId별 최소 온도 # 파일 다운로드 !wget https://s3-geospatial.s3-us-west-2.amazonaws.com/1800.csv 판다스 import pandas as pd pd_df = pd.read_csv( "1800.csv", names=["stationID", "date", "measure_type", "temperature"], usecols=[0, 1, 2, 3] ) pd_minTemps = pd_df[pd_df['measure_type'] == "TMIN"] pd_stationTem..

Spark 설치 및 테스트

강의 Spark 설치 구글 Colab PySpark 및 Py4J 패키지 사용 !pip install pyspark==3.3.1 py4j==0.10.9.5 from pyspark.sql import SparkSession spark = SparkSession.builder\ .master("local[*]")\ .appName('PySpark Tutorial')\ .getOrCreate() spark Local Standalone Spark Z쉘 사용 기본 JDK8/11 필요 JAVA_HOME 환경변수 ~/.zshrc에 등록 Spark 다운로드 java -version /usr/libexec/java_home export JAVA_HOME= 디렉토리 경로 echo $JAVA_HOME vi ~/.zshrc ..

Spark 데이터 처리

강의 데이터 시스템 구조 데이터 병렬처리 데이터 분산 필요 : Partition (128MB) 각각 따로 및 동시 처리 필요 : 파티션 단위로 메모리 로드 및 Executor 배정 데이터 처리 흐름 Spark에서 "데이터프레임"은 다수의 작은 파티션으로 구성되어 있으며 수정이 불가(Immutable)합니다. "셔플링"은 파티션 간에 데이터 이동이 필요한 경우에 발생합니다. 명시적 파티션을 새롭게 하는 경우 : 파티션 수 변경 시스템에 의해 이뤄지는 셔플링 : aggregation, sorting 셔플링이 발생할 때 네트워크를 타고 데이터가 이동합니다. 결과 파티션 수 spark.sql.shuffle.partitions이 결정 오퍼레이션에 따라 결정 : random, hashing partitions, r..

Spark 소개

강의 Spark 메모리 기반 혹은 디스크 사용 다수의 분산 컴퓨팅 환경 지원 : YARN, K8s, Mesos 판다스 데이터프레임과 유사 다양한 방식의 컴퓨팅 지원 : 배치 데이터, 스트림 데이터, SQL, 머신러닝, 그래프 분석 Spark 3.0 구성 Spark Core Spark SQL Spark ML Spark MLlib Spark Streaming Spark GraphX 모듈 API RDD (Resilient Distributed Dataset) : 세밀한 제어 가능 → 코딩 복잡도 증가 DataFrame & Dataset : 하이레벨 프로그래밍 API. Spark SQL 혹은 Spark ML 사용 Spark SQL SQL을 이용하여 구조화된 데이터 처리 Hive 쿼리보다 최대 100배 빠른 성능..

Map Reduce 프로그래밍

강의 Map Reduce 프로그래밍 디스크 기반 Key, Value 쌍의 집합 형태의 데이터셋 포맷 변경 불가 (immutable) map 혹은 reduce 오퍼레이션으로만 데이터 조작 가능 셔플링 : Map 결과 Reduce단에 적재 Map (k, v) → [(k', v')*] 형태 지정된 HDFS 파일로부터 시스템에 의해 입력 Reduce (k', [v1', v2', v3', ...]) → (k'', v'') Map의 출력 중 같은 키를 갖는 페어를 묶어서 시스템에 의해 입력 HDFS에 출력 저장 Shuffling Mapper의 출력을 Reducer로 전송하는 프로세스 전송하는 데이터의 크기가 크면 네트워크 병목 초래 및 시간 효율 감소 Sorting Mapper의 출력을 Reducer가 받아 키 별..