15분
같은 코드가 10배 빨라지는 비밀
Day 3: 같은 코드가 10배 빨라지는 비밀
같은 코드가 10배 빨라지는 비밀
Apache Spark: 대용량 데이터 처리의 시작 > Day 3: 같은 코드가 10배 빨라지는 비밀
학습 목표
Spark 최적화의 필요성을 이해한다 Catalyst Optimizer에 대한 흥미를 갖는다
신기한 경험
어느 날, 코드 리뷰를 받았다.
내 코드:
에디터 로딩 중...
선배 코드:
에디터 로딩 중...
"둘 다 똑같이 돌아가는데요?"
선배가 웃으면서 말했다.
"실행 계획 봐봐. 똑같아."
explain()으로 확인
에디터 로딩 중...
출력:
에디터 로딩 중...
뭐?! user_id, amount, status만 읽는다고?
100개 컬럼 중 3개만 읽는다.
내가 select("*")를 써도 Spark가 알아서 최적화한 것이다.
이것이 Catalyst Optimizer
에디터 로딩 중...
Spark는 내 코드를 그대로 실행하지 않는다. 분석하고, 최적화하고, 가장 효율적인 방법으로 실행한다.
오늘 배울 것
- Catalyst Optimizer가 하는 일
- 실행 계획(explain) 읽는 법
- 최적화가 잘 되도록 코드 작성하는 법
- 최적화를 방해하는 안티패턴 피하기
"알아서 빨라진다"는 말의 진짜 의미를 알게 될 것이다.