목록spark (6)
핀아의 저장소 ( •̀ ω •́ )✧

✅ DataFrame은 관계형 데이터 한마디로 관계형 데이터셋: RDD + Relation RDD가 함수형 API를 가졌다면 DataFrame은 선언형 API 자동으로 최적화가 가능 타입이 없다 -> DataFrame은 내부적으로 타입을 강제하지 않는다. ✅ DataFrame의 특징 DataFrame: RDD의 확장판 지연 실행 (Lazy Execution) 분산 저장 Immutable 열 (Row) 객체가 있다 SQL 쿼리를 실행할 수 있다 스키마를 가질 수 있고 이를 통해 성능을 더욱 최적화 할 수 있다. CSV, JSON, Hive 등으로 읽어오거나 변환이 가능하다. ✅ DataFrame의 스키마를 확인하는 법 dtypes show() 테이블 형태로 데이터를 출력 첫 20개의 열만 보여준다 prin..

sparkSQL의 본격적인 사용 전, 기본적인 SQL 기초를 정리하고 간다. from pyspark.sql import SparkSession spark = SparkSession.builder.master("local").appName("learn-sql").getOrCreate() sparkSQL 사용시 local에 ‘learn-sql’이란 이름으로 spark session 생성 stocks = [ ('Google', 'GOOGL', 'USA', 2984, 'USD'), ('Netflix', 'NFLX', 'USA', 645, 'USD'), ('Amazon', 'AMZN', 'USA', 3518, 'USD'), ('Tesla', 'TSLA', 'USA', 1222, 'USD'), ('Tencent',..

Shuffling 그룹핑시 데이터를 한 노드에서 다른 노드로 옮길 때 사용한다. 성능을 (많이) 저하시킨다. ✅ groupByKey를 할 때도 발생하는 Shuffling key를 기준으로 연산을 하며, 데이터가 이리저리 섞이기 때문에 통신을 많이 하게 된다. 여러 네트워크 연산을 일으키기 때문에 연산 코스트가 큰 연산이다. ✅ 통신 속도 ✅ Shuffle을 일으킬 수 있는 작업들 Join, leftOuterJoin, rightOuterJoin GroupByKey ReduceByKey ComebineByKey Distinct Intersection Repartition Coalesce → 위의 함수들이 결과로 나온 RDD를 원본 RDD의 다른 요소를 참조하거나, 다른 RDD를 참조하여 Shuffle을 일으..

Key-Value RDD에 적용할 수 있는 Transformation & Actions ✅ Transformation groupByKey reduceByKey mapValues keys join (+ leftOuterJoin, rightOuterJoin) ✅ Actions countByKey 1️⃣ groupByKey groupBy를 하게되면 rdd 내의 값이 주어지는 함수를 기준으로 그룹핑이 되어 나눠진다. groupByKey를 하면 무엇을 기준으로 할지(키를 기준으로 그룹핑함) 명확해서 함수를 따로 넣어주지 않아도 된다. [groupBy 예제] [groupByKey 예제] groupByKey() 매개변수를 넣어주면 파티션 개수를 정할 수 있다. 2️⃣ reduceByKey 개념적으로는 groupByK..

Reduction 요소들을 모아서 하나로 합치는 작업 많은 Spark의 연산들이 reduction이다. ✅ Parallel Transformations 주로 변형을 적용시키는 작업들 map, flatMap, filter ✅ 그렇다면 Action은 어떻게 분산된 환경에서 작동할까? 대부분의 Action은 Reduction이다. Reduction: 근접하는 요소들을 모아서 하나의 결과로 만드는 일 파일 저장, collect()등과 같이 Reduction이 아닌 액션도 있다. ✅ 병렬처리 병렬처리 하려면 두개의 요소를 모아서 하나로 만들 수 있어야 한다. 하지만, 파티션마다 독립적으로 있지 않고 파티션마다 의존적이면 병렬처리 불가능하다. ✅ 대표적인 Reduction Actions Reduce Fold Gro..

빅데이터 처리를 위한 오픈소스 고속 분산처리 엔진 연산 엔진을 대체하는 프로젝트이다. ✨ 자세한 내용은 아래 게시글을 참고해 주세요! https://mydb-lib.tistory.com/entry/Hadoop-%ED%95%98%EB%91%A1Hadoop-%EC%9D%B4%EB%A1%A0 [Hadoop] 하둡(Hadoop) 이론 Hadoop이란? 분산환경에서 빅데이터를 저장하고 처리할 수 있는 자바 기반의 오픈 소스 프레임워크로 하둡 소프트웨어 라이브러리는 간단한 프로그래밍 모델을 사용하여 여러대의 컴퓨터 클러스 mydb-lib.tistory.com 스파크는 빠르다는 장점이 있다. 컴퓨터가 연산을 시작하면 하드디스크에서 CPU까지 데이터가 위로 이동한다. 연산에 자주 쓰이는 데이터는 위로가며(CPU가 데이..