在 DATA + AI 数据科学领域,Pandas 无疑是数据科学家和开发者们的“瑞士军刀”。凭借相对完善的 DataFrame API 和丰富的生态,Pandas 极大简化了在中小型数据集上的数据清洗、分析和探索性工作。然而,随着数据集规模的增长,Pandas 在执行效率和资源开销层面的短板也逐渐凸显,因此诞生了 Polars、Dask 一类的产品:
Polars 采取纵向优化策略,通过 Rust 语言对引擎内核进行重新设计和实现,并引入查询优化器、向量化执行引擎等手段以进一步提升执行性能,但开源版本仅提供单机运行模式。
Dask 则采用横向优化策略,可以将其看作是 Pandas 的分布式实现。
Daft 则融合了 Polars 和 Dask 二者的优势,在内核层面采用 Rust 语言实现,并提供 Python DataFrame 和 SQL 接入 API,同时提供单机和分布式两套执行引擎,并支持无缝切换运行模式。重要的是,Daft 内置多模态类型和算子,并依托于 Ray 实现异构资源管理,从而将应用领域由传统结构化数据处理拓展至多模态数据处理场景。