18 October 2020

16G의 메모리가 있는 장비를 주로 사용하며 판다스로 10G정도의 파일을 불러온 사람들이면 판다스의 굼뜬 반응에 답답함을 느꼈을 사람들이 많을 것이다. 그나마 16G의 메모리를 사용하고 있어 10G정도까지라도 로드를 할 수 있지만 8G나 4G의 메모리를 사용하고 있다면 1G의 파일만 로드해도 작업을 할 수 없을 정도로 느려지는 것을 느낄 수 있었을 것이다.

최근 10G이상의 파일을 로드할 때 모든 데이터가 필요하지 않기 때문에 판다스로 필요한 데이터만 불러와서 파일사이즈를 최대한 줄여서 사용하는 방법으로 로컬장비를 활용해 왔다. 이렇게 큰 파일을 다룰 때마다 dask를 써야겠다고 마음만 먹고 실행해 옮기지 못 했는데 드디어 dask 책이 나와서 실행에 옮겨보기로 했다!

이 책에서는 4G정도의 데이터셋은 작은 데이터로 다루기는 하지만 이 또한 판다스로 작은 메모리를 사용해서 로드하기에는 부담이 된다. Dask는 CPU의 단일코어를 사용하는 문제를 모든 CPU코어를 사용하게 함으로써 병렬처리를 해준다.

그리고 dask 는 pandas 와 호환이 아주 잘 되는 인터페이스를 가지고 있으며 사용법도 판다스와 매우 유사하다. 그래서 pandas 에 익숙한 사람이라면 dask에 적응하는게 크게 어렵지 않을것이다.

서울지하철데이터를 통해 dask를 사용해 봤다. pandas 에서 사용했던 API가 대부분 그대로 동작하며 .compute()를 통해 연산이 가능함을 확인할 수 있었다.

dask를 소개하는 번역서가 있었으면 좋겠다고 생각했는데 내가 알기로는 국내 첫 번역서로 알고 있다. 앞으로 곁에 두고 dask에 익숙해 질때까지 닳도록 보려고 한다.

깃헙저장소는 여기에 있다. 이 책 덕분에 앞으로 판다스와 함께 자주 사용하게 될것 같다 :)

https://github.com/coldfire79/data-science-with-python-and-dask