在 Spark 上运行 Pandas 有什么用?

数据挖掘 熊猫 pyspark
2021-10-10 09:02:22

我这周刚开始使用 PySpark,我可以访问两个的实例安装了 Pandas。但是在 Spark 上安装 Pandas 有什么用呢?

在 PySpark 上运行脚本的全部目的不就是为了克服 Pandas 等软件包的限制吗?

如果 Pandas 在 Spark 上运行,性能会提高吗?它与 Spark 的 RDD 兼容吗?

3个回答

无需安装 pandas 模块,因为您的数据通常存储在 spark RDD 或 spark dataframes 对象中。

我发现将 Spark 与 pandas 一起使用的唯一兴趣是,当您想要加载本地 CSV/Excel 数据集,然后将其转换为 spark 数据框时。“createDataFrame”方法处理这种方法。

>>> sqlContext.createDataFrame(pandas.DataFrame([[1, 2]])).collect()  
[Row(0=1, 1=2)]

其实,是!虽然 PySpark 的内置数据帧针对大型数据集进行了优化,但它们实际上在小型数据集上表现更差(即更慢),通常小于 500gb。如果您使用不同大小的数据集,在 Spark 中运行 Pandas 会非常有用,其中一些数据集很小并且可以保存在本地机器上。话虽如此,如果您的数据太大而无法放在一台机器上,则需要使用 spark 数据帧。

这里有一些很好的链接来了解更多关于 Pandas for Spark 的信息:

  1. 堆栈溢出问题

  2. 视频解释

  3. 熊猫和火花数据帧之间的差异

有一个你可能感兴趣的项目叫做Koalas,它允许在 Spark 上运行 pandas。

Koalas:Apache Spark 上的 pandas API Koalas 项目使数据科学家在与大数据交互时更加高效,通过

在 Apache Spark 之上实现 pandas DataFrame API。pandas 是 Python 中事实上的标准(单节点)DataFrame 实现,而 Spark 是大数据处理的事实上的标准。使用此软件包,您可以:

如果您已经熟悉 pandas,则无需学习曲线即可立即使用 Spark。

拥有一个既适用于 pandas(测试、较小的数据集)又适用于 Spark(分布式数据集)的代码库。

这里最明显的好处是最后一点:

拥有一个既适用于 pandas(测试、较小的数据集)又适用于 Spark(分布式数据集)的代码库。