15분
Spark 초보자가 하는 흔한 실수
Day 1: pandas로 10GB 처리하다 포기했다
Spark 초보자가 하는 흔한 실수
Apache Spark: 대용량 데이터 처리의 시작 > Day 1: pandas로 10GB 처리하다 포기했다
학습 목표
Spark 사용 시 흔한 실수를 인지한다 올바른 패턴을 익힌다
실수 1: collect()를 함부로 쓴다
에디터 로딩 중...
collect()는 모든 데이터를 Driver로 가져온다. 10GB DataFrame에 collect()를 호출하면 Driver 메모리가 터진다.
에디터 로딩 중...
실수 2: pandas로 변환한다
에디터 로딩 중...
toPandas()도 collect()와 같은 문제가 있다.
에디터 로딩 중...
실수 3: Lazy Evaluation을 이해 못함
에디터 로딩 중...
Action을 호출해야 실행된다:
에디터 로딩 중...
디버깅할 때 주의해야 함!
실수 4: 파티션 수를 무시한다
에디터 로딩 중...
권장:
- 로컬 개발: 4~8개
- 프로덕션: 코어 수의 2~4배
에디터 로딩 중...
실수 5: SparkSession을 여러 번 만든다
에디터 로딩 중...
SparkSession은 애플리케이션당 하나만 만들자.
에디터 로딩 중...
체크리스트
- collect()나 toPandas()를 대용량 데이터에 쓰지 않았는가?
- Action 없이 Transformation만 있지는 않은가?
- 로컬 개발 시 파티션 수를 줄였는가?
- SparkSession을 중복 생성하지 않았는가?