본문 바로가기

데브코스65

데이터 엔지니어링 75일차 TIL 학습 내용스파크를 활용한 타이타닉 생존자 예측모델 생성from pyspark.sql import SparkSessionspark = SparkSession \ .builder \ .appName("Titanic Classification via ML Pipeline and Model Selection") \ .getOrCreate()"""# 타이타닉 생존 예측 모델 만들기"""spark!wget https://s3-geospatial.s3-us-west-2.amazonaws.com/titanic.csv!ls -tldata = spark.read.csv('./titanic.csv', header=True, inferSchema=True)data.printSchema()data.show()d.. 2024. 7. 13.
데이터 엔지니어링 74일차 TIL 학습 내용SparkML 제공 알고리즘 - Classification :         - Logistic regression         - Decision tree         - Random forest         - Gradient-boosted tree - Regression :         - Linear regression         - Decision tree         - Random forest         - Gradien-boosted tree - Clustering :         - K-means         - LDA(Latent Dirichlet Allocation)         - GMM(Gaussian Mixture Model) - Collaborat.. 2024. 7. 11.
데이터 엔지니어링 73일차 TIL 학습 내용Dynamically optimizing skew joins : Skew된 조인을 효율적으로 처리하는 방법 Skew 파티션으로 인한 성능 문제를 해결하기 위함         - 한 두개의 오래 걸리는 태스크들로 인한 전체 Job/Stage 종료 지연         - disk spill이 발생한다면 더 느려지게 된다. - AQE에서의 해법         - skew 파티션의 존재 여부 파악         - skew 파티션을 작게 나누고 상대 조인 파티션을 중복하여 만들고 조인 수행 Dynamically optimizing skew joins 동작방식 Dynamically optimizing skew joins 환경변수(Spark 3.3.1) 파티션 관련 환경변수(Spark 3.3.1) - sp.. 2024. 7. 10.
데이터 엔지니어링 72일차 TIL 학습 내용Partition Pruning과 Execution Plan - Partition Pruning은 Logical Plan Optimization 단계에서 발생한다. Dynamic Partition Pruning이란? : 비 Partition 테이블에 적용된 필터링을 Partition 테이블에 적용해보는 것         - 작은 dimension테이블이라면 브로드캐스트 조인까지하면 더 좋다. - Dynamic Partition Pruning는 기본적으로 활성화 되어 있다.         - spark.sql.optimizer.dynamicPartitionPruning.enavled : True Repartition을 하는 이유 - 전체적으로 파티션의 수를 늘려 병렬성을 증가시키기 위해 - 굉장히.. 2024. 7. 9.
데이터 엔지니어링 71일차 TIL 학습내용Broadcast Variable이란? : 록업 테이블등을 브로드캐스팅하여 셔플링을 막는 방식으로 사용 - 브로드캐스트 조인에서 사용되는 것과 동일한 테크닉 - 대부분 룩업 테이블 (혹은 디멘션 테이블 - 10~20MB)을 Executor로 전송하는데 사용         - 많은 DB에서 스타 스키마 형태로 팩트 테이블과 디멘션 테이블을 분리 - spark.sparkContext.broadcast를 사용 Broadcast Variable : 룩업 테이블(파일)을 UDF로 보내는 방법 - Closure         - Serialization이 태스크 단위로 일어남         - UDF안에서 파이썬 데이터 구조를 사용하는 경우 - Broadcast         - Serialization이 .. 2024. 7. 8.
데이터 엔지니어링 70일차 TIL 학습 내용배달시간 예측 해보기import pandas as pdimport numpy as np# 전체 데이터프레임 보기# pd.set_option('display.max_rows', None)# pd.set_option('display.max_columns', None)# pd.set_option('display.width', None)# pd.set_option('display.max_colwidth', None)# 되돌리기# pd.reset_option('all')raw = pd.read_csv('delivery_raw.csv', sep='\t')# "actual_delivery_time"이 없는 값 제외raw_dropna_label = raw.dropna(subset=["actual_deliver.. 2024. 7. 6.