最近因为需求要处理几十到两百 G 的 CSV 文件,pandas 感觉跑得比较慢,而且貌似是单核?求问有什么好用一点的包吗,单机的 spark 可以吗胜任吗?内存大概近 500g
1
ipwx 2022-04-03 01:26:48 +08:00
我很好奇你的 pandas 写法是啥样子的
|
2
nuistzhou 2022-04-03 02:27:56 +08:00 via iPhone
试试 Dask ?
|
3
MeePawn666 2022-04-03 02:49:12 +08:00 via Android
非分布式场景 spark 没多快吧。考虑到你内存大于数据集,是计算密集型的话多核 /线程确实会有帮助,可以考虑 mkl, openmp 之类的?话说 numpy 其实挺快的了,处理数据应该足够。
|
4
yech1990 2022-04-03 07:04:18 +08:00 via Android
这个数量级就得考虑 pandas 的增强版本了,类似 https://github.com/pola-rs/polars
|
5
SuperXX 2022-04-03 08:59:28 +08:00
我遇到过很多次 pandas 的速度问题,建议直接换 julia 语言,速度提升不是一点点 的
|
6
SuperXX 2022-04-03 09:03:28 +08:00
|
7
512357301 2022-04-03 12:02:45 +08:00 via Android
试试 clickhouse
|
8
INCerry 2022-04-03 15:32:36 +08:00
其实单机 spark 还不如你写个 for 循环来得快
|
9
MTMT OP |
10
ohayoo 2022-04-13 17:48:02 +08:00
@yech1990 请问下大佬,pandas 读大文件的时候有 chunksize 参数,如
with pd.read_csv(file, chunksize=50000) as reader: 然后 for 循环这个 reader 想请问下 polars 的类似 chunksize 要怎么设置?看官方文档一直就没看懂,不设置的话 读大文件就报内存分配失败 |