V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
MTMT
V2EX  ›  Python

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

  •  
  •   MTMT · 2022-04-03 01:05:50 +08:00 via Android · 3946 次点击
    这是一个创建于 998 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    @MeePawn666 @INCerry 感谢解答,不太了解 spark ,所以不知道单机版什么情况,想着单机版会不会利用多进程,这样可能比单核还是快一些
    ohayoo
        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 要怎么设置?看官方文档一直就没看懂,不设置的话 读大文件就报内存分配失败
    yech1990
        11
    yech1990  
       2022-04-15 21:07:33 +08:00 via Android
    @ohayoo batch_size?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:29 · PVG 04:29 · LAX 12:29 · JFK 15:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.