15

pandas로 10GB 처리하다 포기했다

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도 거뜬히 처리할 수 있다.