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

2022 年 4 月 3 日
 MTMT

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

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

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

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

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

想请问下 polars 的类似 chunksize 要怎么设置?看官方文档一直就没看懂,不设置的话 读大文件就报内存分配失败
yech1990
2022 年 4 月 15 日
@ohayoo batch_size?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844667

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX