Skip to content
목록으로

Spark shuffle partition 수, 200에서 시작하지 않기

개인 공부2026년 9월 11일

spark.sql.shuffle.partitions 의 기본값은 200이다. 데이터 크기와 무관하게 고정된 값이라, 작은 작업에서는 태스크가 과하게 쪼개지고 큰 작업에서는 파티션 하나가 너무 커진다.

잡는 기준

셔플 후 파티션 하나가 100~200MB 정도가 되도록 맞추는 편이다.

파티션 수 ≈ 셔플 데이터 크기 / 128MB

5GB 를 셔플한다면 40개 근처가 된다. 200으로 두면 파티션당 25MB 라, 태스크 스케줄링 비용이 실제 계산보다 커지는 구간에 들어간다.

AQE 를 켜면

Spark 3 부터는 spark.sql.adaptive.enabled 가 켜져 있으면 실행 중에 작은 파티션을 합쳐 준다. 그래도 시작값이 터무니없으면 합치는 일 자체가 비용이라, 대략이라도 맞춰 두는 편이 낫다.

Spark UI 의 Shuffle Read Size 를 보고 다음 실행에서 조정하는 게 제일 빠르다.

Comments