首页 > 解决方案 > 为什么要在 PySpark 中导入熊猫?

问题描述

嗨,在数据科学领域的大学里,我们了解到,如果我们想处理小数据,我们应该使用 pandas,如果我们处理大数据,我们应该使用 spark,例如 Python 程序员 PySpark。

最近我在云中的一个 Hackaton(azure Synapse,在 Spark 内部工作)中看到在笔记本中导入熊猫(我想代码是好的原因是由微软人制作的)

import pandas 
from azureml.core import Dataset
training_pd = training_data.toPandas().to_csv('training_pd.csv', index=False)

他们为什么这样做?

标签: pandasapache-sparkpyspark

解决方案


Pandas 数据帧不支持并行化。另一方面,使用 Pandas,您不需要集群,您有更多的库和易于扩展的示例。让我们成为现实,它的性能对于每项不需要扩展的任务都更好。

所以,如果你开始学习 Pandas 的数据工程生活,你会遇到两件事:

  • 外化知识:现成的代码、片段和项目;
  • 内化知识:您熟悉并更喜欢的 API、模式、保证以及如何编写此代码的直觉。

对于一个拿着锤子的人来说,一切都像钉子。这并不总是一件坏事。如果你有严格的最后期限,做得比完美更好!现在最好使用 Pandas,而不是多年来学习适当的可扩展解决方案。

想象一下,您想在 PySpark 模式下使用 Apache Zeppelin 笔记本,并具有所有这些很酷的可视化效果。但它并不能完全满足您的要求,您正在考虑如何快速修复它。同时,您可以立即 google 一个现成的 Pandas 解决方案。这是一条路;您没有其他选择来满足您的最后期限。

另一个猜测是,如果你用 Python 编写代码,你可以在 PyCharm 等每个优秀的 IDE 中使用交互式调试器轻松调试它。这通常不适用于在线笔记本,尤其是在 Spark 模式下。你知道 Spark 有什么好的调试器吗?我什么都不知道(据我所知,来自 IDEA 的大数据工具插件的人们正试图为 Scala 解决这个问题,但不是为 Python 解决这个问题)。因此,您必须在 IDE 中编写代码,然后将其复制粘贴到笔记本中。

最后但并非最不重要的一点是,这可能只是一个错误。人们并不总是完全清楚自己在做什么,尤其是在大数据这样的大领域。你很幸运有这门大学课程。互联网上的普通乔没有这样的选择。

我应该在这里停下来,因为前面只有猜测。


推荐阅读