15분
pandas로 10GB 처리하다 포기했다
Day 1: pandas로 10GB 처리하다 포기했다
pandas로 10GB 처리하다 포기했다
Apache Spark: 대용량 데이터 처리의 시작 > Day 1: pandas로 10GB 처리하다 포기했다
학습 목표
pandas의 메모리 한계를 이해한다 Spark가 필요한 상황을 파악한다
그날의 사건
"야, 이 로그 파일 분석 좀 해줘. 지난달 데이터야."
선배가 던져준 파일. 10GB짜리 CSV. "pandas로 하면 되겠지" 하고 코드를 짰다.
에디터 로딩 중...
30분째 돌아가는 중...
그러더니 갑자기:
에디터 로딩 중...
컴퓨터 메모리: 16GB 파일 크기: 10GB pandas가 필요한 메모리: 24GB (원본의 2~3배)
게임 오버.
pandas의 불편한 진실
pandas는 모든 데이터를 메모리에 올린다.
에디터 로딩 중...
"그럼 서버에서 하면 되잖아?"
128GB 서버에서 돌렸다. 됐다. 그런데 100GB 파일이 오면? 1TB 파일이 오면? 메모리를 계속 늘릴 수는 없다.
대용량 데이터의 현실
실무에서 마주치는 데이터 크기:
| 데이터 | 크기 | pandas? |
|---|---|---|
| 일일 로그 | 5GB | 힘들다 |
| 월간 로그 | 150GB | 불가능 |
| 연간 트랜잭션 | 2TB | 절대 불가능 |
| IoT 센서 데이터 | 10TB+ | 꿈도 꾸지 마 |
데이터가 커지면 pandas로는 답이 없다.
그래서 Spark가 필요하다.
이번 주에 배울 것
- Day 1: Spark 아키텍처 - 왜 대용량을 처리할 수 있는가?
- Day 2: DataFrame API - SQL처럼 쉽게 분산 처리하기
- Day 3: Catalyst Optimizer - 같은 코드가 10배 빨라지는 비밀
- Day 4: UDF & Pandas UDF - Python 함수를 Spark에서 쓰기
- Day 5: 대용량 로그 분석 파이프라인 - 실전 프로젝트
pandas로 막혔던 10GB 파일? 이번 주가 끝나면 100GB도 거뜬히 처리할 수 있다.