数据块- Pyspark与Pandas

llycmphe  于 2023-01-05  发布在  Apache
关注(0)|答案(3)|浏览(142)

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

rdlzhqv9

rdlzhqv91#

如果数据足够小,你可以用panda来处理,那么你可能不需要pyspark。当你的数据量太大,一台机器的内存放不下时,Spark很有用,因为它可以执行分布式计算。也就是说,如果计算足够复杂,它可以从大量的并行化中受益。那么你可以看到使用pyspark的效率提升,我对pyspark的API比panda更满意,所以我可能最终还是会使用pyspark,但是你是否会看到效率提升在很大程度上取决于问题。

fdx2calv

fdx2calv2#

Pandas在一台机器上运行操作,而PySpark在多台机器上运行。如果您正在使用机器学习应用程序,处理更大的数据集,PySpark是最佳选择,它可以比Pandas快许多倍(100倍)。
PySpark在处理大型数据集时非常高效,但可以在预处理和数据探索之后将Spark Dataframe 转换为Pandas Dataframe ,以便使用sklearn训练机器学习模型。

wz8daaqr

wz8daaqr3#

请让我们把苹果和苹果比较一下:pandas不能替代pyspark,因为pandas不能进行分布式计算和核外计算。(参见docs),您甚至不必像Spark那样学习其他API,因为Dask旨在作为pandasnumpy的分布式直接替代(并且Dask ML也是诸如scikit-learnxgboost的流行ML包的分布式直接替代)。

相关问题