我有一个python脚本,我使用panda来转换/操作我的数据。我知道我有一些“低效”的代码块。我的问题是,如果pyspark应该更快,我可以用pyspark代替panda来替换这些代码块吗?或者我需要所有的东西都在pyspark中吗?如果我在Databricks中,这有多大关系,因为它已经在spark集群上了?
rdlzhqv91#
如果数据足够小,你可以用panda来处理,那么你可能不需要pyspark。当你的数据量太大,一台机器的内存放不下时,Spark很有用,因为它可以执行分布式计算。也就是说,如果计算足够复杂,它可以从大量的并行化中受益。那么你可以看到使用pyspark的效率提升,我对pyspark的API比panda更满意,所以我可能最终还是会使用pyspark,但是你是否会看到效率提升在很大程度上取决于问题。
fdx2calv2#
Pandas在一台机器上运行操作,而PySpark在多台机器上运行。如果您正在使用机器学习应用程序,处理更大的数据集,PySpark是最佳选择,它可以比Pandas快许多倍(100倍)。PySpark在处理大型数据集时非常高效,但可以在预处理和数据探索之后将Spark Dataframe 转换为Pandas Dataframe ,以便使用sklearn训练机器学习模型。
wz8daaqr3#
请让我们把苹果和苹果比较一下:pandas不能替代pyspark,因为pandas不能进行分布式计算和核外计算。(参见docs),您甚至不必像Spark那样学习其他API,因为Dask旨在作为pandas和numpy的分布式直接替代(并且Dask ML也是诸如scikit-learn和xgboost的流行ML包的分布式直接替代)。
pandas
pyspark
numpy
scikit-learn
xgboost
3条答案
按热度按时间rdlzhqv91#
如果数据足够小,你可以用panda来处理,那么你可能不需要pyspark。当你的数据量太大,一台机器的内存放不下时,Spark很有用,因为它可以执行分布式计算。也就是说,如果计算足够复杂,它可以从大量的并行化中受益。那么你可以看到使用pyspark的效率提升,我对pyspark的API比panda更满意,所以我可能最终还是会使用pyspark,但是你是否会看到效率提升在很大程度上取决于问题。
fdx2calv2#
Pandas在一台机器上运行操作,而PySpark在多台机器上运行。如果您正在使用机器学习应用程序,处理更大的数据集,PySpark是最佳选择,它可以比Pandas快许多倍(100倍)。
PySpark在处理大型数据集时非常高效,但可以在预处理和数据探索之后将Spark Dataframe 转换为Pandas Dataframe ,以便使用sklearn训练机器学习模型。
wz8daaqr3#
请让我们把苹果和苹果比较一下:
pandas
不能替代pyspark
,因为pandas
不能进行分布式计算和核外计算。(参见docs),您甚至不必像Spark那样学习其他API,因为Dask旨在作为pandas
和numpy
的分布式直接替代(并且Dask ML也是诸如scikit-learn
和xgboost
的流行ML包的分布式直接替代)。