Spark Shuffling 최적화Repartition and CoalesceRepartition을 하는 이유전체적으로 파티션의 수를 늘려 병렬성 증대굉장히 큰 Partition이나 Skew Partition의 크기를 조절파티션을 분석 패턴에 맞게 재분배 (Write once, read many)어떤 DataFrame을 특정 컬럼을 기준으로 그루핑 하거나 필터링을 자주 하는 경우미리 그 컬럼을 기준으로 저장해 두었다면, 그것이 BucketingRepartition 방식두 가지 방식 존재repartition (Hash)repartitionByRange (value 기준)주의할 점Shuffling 발생 : Repartition이 별 이유 없이 사용되면 오히려 시간과 비용 증가Column이 사용되면 균등한 파..
Spark 기타 기능과 메모리 관리Spark 기타 기능Broadcast Variable룩업 테이블 등을 브로드캐스팅하여 셔플링을 막는 방식으로 사용브로드캐스트 조인에서 사용되는 것과 동일한 테크닉대부분 룩업 테이블 (혹은 디멘션 테이블)을 Executor로 전송하는 데 사용spark.sparkContext.broadcast 사용ClosureSerialization이 Task 단위로 일어남UDF 안에서 파이썬 데이터 구조를 사용하는 경우BroadcastSerialization이 Worker Node 단위로 일어남UDF 안에서 브로드캐스트 된 데이터 구조를 사용하는 경우Broadcast 데이터 셋의 특징Worker Node로 공유되는 변경 불가 데이터 (Immutable)Worker Node 별로 한 번 ..
[TIL - 72일 차] 음식 배달에 걸리는 시간 예측하기 (1)오늘 강의는 "선형대수 기초"이지만, 이미 대학교에서 강의를 수강하기도 했고 수식이 많아 모두 정리하기에 무리가 있어 학습은 영상으로만 진행하였다. 대신에 머신러닝 과제인 "음식 배달에sanseo.tistory.com이전에 문제 이해와 데이터 전처리, 하이퍼 파라미터 튜닝 코드까지 작성해 보았다. 그러나 학습 시간이 생각보다 오래 걸려 KFold를 사용하지 않은 방법으로 사용해보려고 한다. 또한 테스트 데이터의 예측과 under_prediction의 비율도 확인해 보자.음식 배달에 걸리는 시간 예측하기진행 과정하이퍼 파라미터 튜닝KFold (교차 검증) 부분을 삭제하고 train_test_split 사용실행 결과최소 rmse : 729.44..
오늘 강의는 "선형대수 기초"이지만, 이미 대학교에서 강의를 수강하기도 했고 수식이 많아 모두 정리하기에 무리가 있어 학습은 영상으로만 진행하였다. 대신에 머신러닝 과제인 "음식 배달에 걸리는 시간 예측하기"를 진행한 내용을 TIL에 적어보려고 한다.음식 배달에 걸리는 시간 예측하기문제 이해실습 문제 소개목표 : 음식 배달에 걸리는 시간 예측하기이유 : 배달 시간을 정확히 예측하는 것은 사용자의 경험에 많은 영향을 미침사용자의 경험 under-prediction : 예측된 배달 시간보다 실제 배달 시간이 더 걸린 경우over-prediction : 예측된 배달 시간보다 실제 배달 시간이 덜 걸린 경우under-prediction이 over-prediction보다 두 배로 사용자의 경험에 안 좋은 영향을..