7

数据帧比较:Polars vs. Spark vs. Pandas vs. DataFusion性能对比

 1 year ago
source link: https://www.jdon.com/63904
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

数据帧比较:Polars vs. Spark vs. Pandas vs. DataFusion性能对比


在 Spark 真正成为主流之前,数据科学家仍在大量使用 Pandas。现在每个人都想要一块 DataFrame 蛋糕!

GitHub 上提供测试代码。
我不会深入探讨这些工具中的每一个,除了一些Rust基础的新工具,例如 Polars 和 DataFusion,您可能对它们中的大多数都很熟悉。此外,将 Spark 混入其中可能不公平,它是一个分布式计算平台等等。但是,我必须这样做。我发现比较各种工具很有趣。
观察代码在每种情况下是如何编写测试的很有趣,它告诉您有关该工具的一些信息。观看性能当然也很有趣,尽管它似乎让每个工具的粉丝在互联网上疯狂,这是乐趣的一半。我不会调整任何工具,只是安装并使用它们。

  • 读取简单的平面文件并进行正常聚合有多容易和相似?
  • 开箱即用的性能是什么样的?

我们将使用来自 Divvy Bike trips 开源数据集的 1 年数据

Polars – Rust 和 Python 中速度极快的 DataFrame
这个街区的新人是 Polars,您刚刚开始看到到处都有帖子。这几天Dataframe空间越来越拥挤,很难把所有的选项都说清楚,当然,每个人都说他们是最快的,这是另一个时间的讨论。无论如何,让我们使用 Polars 的 Python 版本,这样我们就可以pip安装并继续。
让我们通过简单地尝试读取我们的.csv文件并将我们的date字符串转换为date数据类型来开始我们的 Polars 之旅。

2.127699500 万条以上的记录只需几秒钟,并groupBy进行一些轻微的日期转换。

Spark——统领一切的一枚戒指
你知道,Spark 不是为了处理像这样的小数据集而设计的。但是,它易于安装,几乎每个人都可以在任何地方使用,因此必须与团队的其他成员一起对其进行测试。Spark 很棒,因为您可以轻松处理比内存大得多的数据,而无需任何lazy()或collect()有趣的东西.
PySpark 的出现实际上让任何人都可以使用代码,更不用说技术人员了。Spark 会更慢,但可能更容易编写。

这里没有惊喜。Spark 是为大型数据集而设计的,速度慢了20.201003几秒钟,但比 Polars 更容易编写代码。

Pandas 
Python 无处不在,而 Pandas 是当天第一个参加 Dataframe 聚会的人,现在它无处不在。它仍然很烦人。
Pandas 最烦人的事情之一就是你如何读取多个文件,至少我是这样的。你会认为现在有人已经解决了这个问题。

与 Spark 一样快,足够简单,并且在17.234139秒内

DataFusion——角落里的家伙
它是一个不错的 Rust DataFrame 小工具。它似乎不是那么出名,它有一个 Python 包,但似乎有点古怪,而且没有任何文档。我们将坚持使用 Rust。

花费100.20秒,太慢了。

详细点击标题


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK