목록 보기
Polars로 데이터 처리를 더 빠르고 가볍게 with 실무 적용기
백엔드

Polars로 데이터 처리를 더 빠르고 가볍게 with 실무 적용기

우아한 형제들
우아한 형제들
2024년 7월 23일

두줄요약

Pandas와 Spark 사이의 대체제로 Polars를 검토한 실무 적용 경험을 소개했습니다. Lazy API와 streaming으로 메모리와 실행 시간을 크게 줄인 사례를 공유했습니다.

핵심 내용

  • 배달시간예측서비스팀의 데이터 처리 작업에서 Pandas는 느리고 메모리 소모가 크며, Spark는 러닝 커브와 비용 부담이 커서 대체 도구를 탐색
  • Ray, Dask, Modin, vaex, Numba 등을 검토했지만 데이터 처리 목적, 성능, 운영 편의성 측면에서 한계가 있어 Polars를 후보로 선택
  • Polars는 Rust 기반, Apache Arrow 기반, 다양한 IO 지원, Lazy API, Streaming API를 통해 단일 머신에서도 빠르고 가벼운 데이터 처리를 지향
  • 실험에서는 Parquet 읽기와 집계 처리에서 Pandas보다 훨씬 적은 메모리와 짧은 실행 시간을 보였고, streaming 적용 시 더 큰 데이터도 처리 가능

적용해볼 점

  • GB 단위 데이터의 로컬 처리나 후속 피처 엔지니어링에 Polars 검토
  • Lazy API와 streaming 옵션을 조합해 메모리 사용량과 실행 시간 최적화
  • SQL 유사 문법과 칼럼 선택 편의성을 활용해 데이터 처리 코드 단순화

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...