当科研项目达到使用 100 多 TB 生物数据规模的时候,数据科学库的一些局限性会先露出来。面临这种规模的数据时,Pandas 成了最受喜爱的工具;然而,当你开始处理 TB 级别的基因数据时,单核运行的 Pandas 就会变得捉襟见肘。如果我们拥有更多的处理器核,或者要打开数十 TB 规模的文件时,我们希望 Pandas 运行得更快。目前,Apache Spark 是最高性能的分布式选择了,但是如果未对 Pandas 代码做出足够多的修改,你无法使用 Apache Spark 运行 Pandas 代码。
正因如此,来自 UC Berkeley 的 Devin Petersohn 发布文章介绍了其参与的项目 Pandas on Ray。Ray 本身是一个灵活的支持分布式集群的数据操作框架。使用这款工具,无需对代码进行太多改动即可加速 Pandas,遇到大型数据集也不怕。作者还对 Pandas on Ray、Pandas 进行了对比评估。分别使用了多个大小的数据集:
- 泰坦尼克数据集:60 KB
- 标普 500 股市数据:29.6 MB
- Yelp 数据集:31 MB
- Kiva Loan 数据集:187 MB
- 全球健康数据:1.79 GB
- NYC Parking Tickets 数据集:2GB
结果均显示在多个虚拟 CPU 核的支持下,Pandas on Ray 的性能提升尤为显著。机器之心对此文进行了编译介绍。值得强调的是:Ray 绝对不仅限于 Pandas 的应用,它甚至能够