데이터 엔지니어링

[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)

[TIL - 80일 차] Spark, SparkML 실습 (5)

ML Pipeline과 Tuning 소개와 실습Spark ML 모델 튜닝Spark ML 모델 튜닝 (ML Tuning)최적의 하이퍼 파라미터 선택최적의 모델 혹은 모델의 파라미터를 찾는 것이 중요하나씩 테스트 vs 다수를 동시에 테스트모델 선택의 중요한 부분은 테스트 방법 (교차 검증, 홀드 아웃)보통 ML Pipeline과 같이 사용다음과 같은 입력을 바탕으로 가장 좋은 파라미터를 찾아줌Estimator : 머신러닝 모델 혹은 ML PipelineEvaluator : 머신러닝 모델의 성능을 나타내는 지표Parameter : 훈련 반복 횟수 등의 하이퍼 파라미터 (ParamGridBuilder)최종적으로 결과가 가장 좋은 모델을 반환Spark ML 머신러닝 모델 성능 측정 : Evaluatorevalua..

[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)

[TIL - 78일 차] Spark, SparkML 실습 (3)

Spark PartitionSalting을 통한 Data Skew 처리AQE가 등장하기 전 Data Skew 처리 방식 중 하나인 Salting에 대해 알아보자.Partition 관련 환경 변수 (3.3.1)spark.sql.shuffle.partitions클러스터 차원과 처리 데이터의 크기를 고려하여 Job마다 바꿔 설정큰 데이터를 처리한다면, 클러스터 전체 코어의 수로 설정AQE를 사용하는 관점에서는 조금 더 크게 설정하는 것이 좋음 (coalescing)SaltingSkew Partition을 처리하기 위한 테크닉AQE의 등장으로 인해 많이 쓰이지 않지만, AQE만으로 이슈가 사라지지 않는다면 필요할 수 있음랜덤 필드를 만들고, 그 기준으로 Partition을 새로 만들어 처리Aggregation ..

[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)

[TIL - 77일 차] Spark, SparkML 실습 (2)

Spark Shuffling 최적화Repartition and CoalesceRepartition을 하는 이유전체적으로 파티션의 수를 늘려 병렬성 증대굉장히 큰 Partition이나 Skew Partition의 크기를 조절파티션을 분석 패턴에 맞게 재분배 (Write once, read many)어떤 DataFrame을 특정 컬럼을 기준으로 그루핑 하거나 필터링을 자주 하는 경우미리 그 컬럼을 기준으로 저장해 두었다면, 그것이 BucketingRepartition 방식두 가지 방식 존재repartition (Hash)repartitionByRange (value 기준)주의할 점Shuffling 발생 : Repartition이 별 이유 없이 사용되면 오히려 시간과 비용 증가Column이 사용되면 균등한 파..

[프로그래머스] 데이터 엔지니어링 데브코스 3기/TIL(Today I Learn)

[TIL - 76일 차] Spark, SparkML 실습 (1)

Spark 기타 기능과 메모리 관리Spark 기타 기능Broadcast Variable룩업 테이블 등을 브로드캐스팅하여 셔플링을 막는 방식으로 사용브로드캐스트 조인에서 사용되는 것과 동일한 테크닉대부분 룩업 테이블 (혹은 디멘션 테이블)을 Executor로 전송하는 데 사용spark.sparkContext.broadcast 사용ClosureSerialization이 Task 단위로 일어남UDF 안에서 파이썬 데이터 구조를 사용하는 경우BroadcastSerialization이 Worker  Node 단위로 일어남UDF 안에서 브로드캐스트 된 데이터 구조를 사용하는 경우Broadcast 데이터 셋의 특징Worker Node로 공유되는 변경 불가 데이터 (Immutable)Worker Node 별로 한 번 ..

기억에 남는 블로그 닉네임
'데이터 엔지니어링' 태그의 글 목록 (7 Page)