繁体   English   中英

数据块 - Pyspark 与 Pandas

[英]Databricks - Pyspark vs Pandas

我有一个 python 脚本,我在其中使用 pandas 来转换/操作我的数据。 我知道我有一些“低效”的代码块。 我的问题是,如果 pyspark 应该快得多,我可以只使用 pyspark 而不是 pandas 替换这些块,还是我需要所有东西都在 pyspark 中? 如果我在 Databricks 中,因为它已经在 spark 集群上,这真的有多大关系?

如果数据足够小,您可以使用 pandas 来处理它,那么您可能不需要 pyspark。 当您拥有如此大的数据量以至于它不适合一台机器中的 memory 时,Spark 很有用,因为它可以执行分布式计算。 话虽如此,如果计算足够复杂以至于可以从大量并行化中受益,那么您可以使用 pyspark 看到效率提升。 我对 pyspark 的 API 比 pandas 更满意,所以我最终可能会使用 pyspark,但是你是否会看到效率提升很大程度上取决于问题。

Pandas 在单台机器上运行操作,而 PySpark 在多台机器上运行。 如果您正在处理大型数据集的机器学习应用程序,PySpark 是最合适的,它可以比 Pandas 快很多倍(100 倍)处理操作。

PySpark 对于处理大型数据集非常有效。 但是您可以在预处理和数据探索之后将 spark dataframe 转换为 Pandas dataframe 以使用 sklearn 训练机器学习模型。

让我们比较苹果与苹果: pandas pyspark ,因为pandas不能进行分布式计算和核外计算。 你可以让 Spark 对抗的是 Ray Core 上的dask (参见文档) ,你甚至不必像使用 Spark 那样学习不同的 API,因为 Dask 旨在成为pandasnumpy的分布式替代品(流行的 ML 包(例如scikit-learnxgboost )的Dask ML也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM