【问题标题】:What is the point in using PySpark over Pandas?在 Pandas 上使用 PySpark 有什么意义?
【发布时间】:2022-11-30 19:43:28
【问题描述】:

我最近一直在学习 Spark(更准确地说是 PySpark),起初它对我来说似乎非常有用和强大。就像你可以并行处理 Gb 的数据,所以它比用经典工具处理它要快得多......对吧?所以我想自己尝试一下才能被说服。

所以我下载了一个将近 1GB、约一千万行的 csv 文件(链接:https://github.com/DataTalksClub/nyc-tlc-data/releases/download/fhvhv/fhvhv_tripdata_2021-01.csv.gz),并想尝试用 Spark 和 Pandas 处理它以查看差异。

所以我们的目标只是读取文件,并且在某个日期有很多行的计数。我试过 PySpark :

Preprocess with PySpark

和大熊猫:

Preprocess with Pandas

这显然给出了相同的结果,但 PySpark 大约需要 100 万秒,而 Pandas 只需要(!)大约 30 秒。

我觉得我错过了什么,但我不知道是什么。为什么使用 PySpark 需要更多时间?不应该相反吗?

编辑:我没有显示我的 Spark 配置,但我只是在本地使用它,所以也许这可以解释?

【问题讨论】:

    标签: python pandas pyspark preprocessor


    【解决方案1】:

    Spark 是一个分布式处理框架。这意味着,为了充分发挥它的潜力,您必须将其部署在机器(称为节点): 然后处理被并行化并分布在它们之间。这通常发生在 Google Cloud 或 AWS 等云平台上。另一个有趣的检查选项是 Databricks。

    如果你在本地机器上使用它,它会在单个节点上运行,因此它只是 Pandas 的一个更糟糕的版本。这对于学习目的来说很好,但这不是它应该使用的方式。

    有关 Spark 集群如何工作的更多信息,请查看文档:https://spark.apache.org/docs/latest/cluster-overview.html 请记住,这是一个非常深刻的话题,需要一段时间才能体面地理解一切……

    【讨论】: