Pandas、Polars 与 PySpark的基准分析与性能比较

Pandas、Polars 与 PySpark的基准分析与性能比较-1

导读:本文通过比较 Pandas、Polars 和 PySpark 三种工具的不同数据集处理,得出数据处理未来发展方向的结论。希望对各位大数据开发者有所启发。

最近,我一直在使用Polars和PySpark ,这让我回到并想起了Spark热度最鼎盛的日子,每个数据处理解决方案似乎都围绕它展开。

这些项目,有时让我不禁要问:这真的有必要这么干吗?

接下来就让我们深入研究一下,我在各种数据处理技术方面的经验和实践。

背景

在我刚刚完成学业里,也就是关于情感分析的最后一个项目里,Pandas 刚刚开始成为特征工程的主流工具。它用户友好,并且与多个机器学习库(例如 scikit-learn)无缝集成。

然后,当我正式参加工作时,Spark 成为日常生活的一部分。我将它用在新兴数据湖中的ETL流程来实现业务逻辑,尽管我想了解是否过度设计了这些流程。

通常,我们处理的数据量不足以需要使用 Spark,但每次新数据进入系统时都会使用它。我们必须建立一个系统集群,然后使用 Spark 进行处理。

在一些情况晨,我感觉到 Spark 并不是适合这项工作的工具。

有一次经历中,我使用 Pandas 开发一个轻量级的摄取框架。但是,这个框架并没有达到预期的效果,在处理中型到大型文件时遇到了困难。

于是就在最近,我开始使用 Polars 来执行一些任务,它在处理数百万行数据集方面的性能给了我留下深刻的印象。这也引发我为这些工具设置了不同的基准。

接下来就让我们深入了解。

Pandas

Pandas、Polars 与 PySpark的基准分析与性能比较-2

Pandas 一直是数据操作、探索和分析的主流工具。由于 Pandas 与 R 网格视图的相似性,它在数据科学家中正在越来越受欢迎。而且,它与机器学习领域相关的其他Python库同步。比如:

  • NumPy是一个用于实现线性代数和标准计算的数学库。Pandas 基于 NumPy。

  • Scikit-learn是机器学习应用程序的参考库。通常,模型使用的所有数据都已使用 Pandas 或 NumPy 加载、可视化和分析。

PySpark