MTMT
V2EX  ›  Python

处理比较大的数据集的时候,单机 spark 会比 pandas 更快吗

By MTMT at 2022 年 4 月 3 日 · 5401 次点击

最近因为需求要处理几十到两百 G 的 CSV 文件,pandas 感觉跑得比较慢,而且貌似是单核?求问有什么好用一点的包吗,单机的 spark 可以吗胜任吗?内存大概近 500g

11 条回复  •  2022-04-15 21:07:33 +08:00
ipwx
   1
ipwx  
   2022 年 4 月 3 日
我很好奇你的 pandas 写法是啥样子的
flgn88
   2
flgn88  
   2022 年 4 月 3 日 via iPhone
试试 Dask ?
MeePawn666
   3
MeePawn666  
   2022 年 4 月 3 日 via Android
非分布式场景 spark 没多快吧。考虑到你内存大于数据集,是计算密集型的话多核 /线程确实会有帮助,可以考虑 mkl, openmp 之类的?话说 numpy 其实挺快的了,处理数据应该足够。
yech1990
   4
yech1990  
   2022 年 4 月 3 日 via Android
这个数量级就得考虑 pandas 的增强版本了,类似 https://github.com/pola-rs/polars
SuperXX
   5
SuperXX  
   2022 年 4 月 3 日
我遇到过很多次 pandas 的速度问题,建议直接换 julia 语言,速度提升不是一点点 的
SuperXX
   6
SuperXX  
   2022 年 4 月 3 日
512357301
   7
512357301  
   2022 年 4 月 3 日 via Android
试试 clickhouse
INCerry
   8
INCerry  
   2022 年 4 月 3 日
其实单机 spark 还不如你写个 for 循环来得快
MTMT
   9
MTMT  
OP
   2022 年 4 月 3 日 via Android
@nuistzhou @512357301 感谢推荐,目前正在尝试这一类的包

@SuperXX 感谢推荐,之前不太了解,看来值得学习一下

@yech1990 感谢推荐,看 benchmark 感觉 polars 真是太强了

@MeePawn666 @INCerry 感谢解答,不太了解 spark ,所以不知道单机版什么情况,想着单机版会不会利用多进程,这样可能比单核还是快一些
ohayoo
   10
ohayoo  
   2022 年 4 月 13 日
@yech1990 请问下大佬,pandas 读大文件的时候有 chunksize 参数,如
with pd.read_csv(file, chunksize=50000) as reader:
然后 for 循环这个 reader

想请问下 polars 的类似 chunksize 要怎么设置?看官方文档一直就没看懂,不设置的话 读大文件就报内存分配失败
yech1990
   11
yech1990  
   2022 年 4 月 15 日 via Android
@ohayoo batch_size?
推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
© 2026 V2EX · 44ms · 3.9.8.5