20분
SQL 탭: 실행 계획 시각화
Spark UI: 병목 찾기와 디버깅
SQL 탭: 실행 계획 시각화
Spark 심화: Streaming & Delta Lake > Spark UI: 병목 찾기와 디버깅
학습 목표
SQL 탭에서 쿼리 실행 계획을 읽을 수 있다 주요 연산자의 의미를 이해한다 비효율적인 실행 계획을 식별할 수 있다
SQL 탭: DataFrame 쿼리도 여기에!
DataFrame API도 내부적으로 SQL로 변환되어 SQL 탭에 표시된다.
에디터 로딩 중...
↓ SQL 탭에서 시각화
에디터 로딩 중...
주요 연산자 해석
| 연산자 | 의미 | 비용 |
|---|---|---|
| FileScan | 파일 읽기 | I/O |
| Filter | 조건 필터링 | 낮음 |
| Project | 컬럼 선택 | 낮음 |
| Exchange | Shuffle! | 높음 |
| HashAggregate | 해시 기반 집계 | 중간 |
| SortMergeJoin | 정렬 후 병합 조인 | 높음 |
| BroadcastHashJoin | Broadcast 조인 | 낮음 |
| Sort | 정렬 | 높음 |
Exchange (Shuffle) 읽는 법
에디터 로딩 중...
주의할 패턴:
- Exchange가 여러 번 연속 → Shuffle이 많음
- Exchange 후 데이터 크기 확인 (rows, size)
Join 방식 확인
BroadcastHashJoin (좋음)
에디터 로딩 중...
SortMergeJoin (보통)
에디터 로딩 중...
SQL 탭 분석 체크리스트
에디터 로딩 중...
explain() 명령어
코드에서 직접 확인:
에디터 로딩 중...
에디터 로딩 중...