40분
실습: 느린 Job을 10배 빠르게
Spark 성능 튜닝: Shuffle과 Skew 정복
실습: 느린 Job을 10배 빠르게
Spark 심화: Streaming & Delta Lake > Spark 성능 튜닝: Shuffle과 Skew 정복
학습 목표
Broadcast Join을 적용할 수 있다 Salting으로 Skew를 해결할 수 있다 explain()으로 실행 계획을 분석할 수 있다
미션: 느린 집계를 빠르게 만들기
Skew가 있는 데이터셋에서 집계 성능을 개선합니다.
시나리오
- 주문 데이터 100만 건
- 판매자 1000명
- 1명의 메가 판매자가 전체의 50% 차지
요구사항
- Skew 데이터 생성 및 확인
- 기본 groupBy 집계 (느림)
- Salting으로 개선된 집계
- 성능 비교
힌트
union()으로 Skew 데이터 추가concat()으로 솔트 키 생성split()으로 솔트 제거
에디터 로딩 중...
힌트 보기
- • concat()으로 문자열 합치기: concat(col, lit("_"), rand_col)
- • floor(rand() * N)으로 0~N-1 랜덤 정수
- • regexp_replace()로 패턴 제거: regexp_replace(col, "_\\d+$", "")
- • cache()로 중간 결과 캐싱하면 공정한 비교 가능
- • 실제 클러스터에서는 Salting 효과가 더 큼 (로컬에서는 차이 작을 수 있음)
정답 보기
에디터 로딩 중...