为什么我的火花跑得比纯Python慢?性能比较

2024-04-25 11:48:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在这里点燃新人的火花。我试着用Spark在我的数据帧上做一些pandas操作,令人惊讶的是它比纯Python慢(即在Python中使用pandas包)。以下是我所做的:

(一) 在Spark中:

train_df.filter(train_df.gender == '-unknown-').count()

大约需要30秒才能恢复结果。但是使用Python大约需要1秒。

2)火花中:

sqlContext.sql("SELECT gender, count(*) FROM train GROUP BY gender").show()

同样,Spark需要30秒,Python需要1秒。

我的Spark比纯Python慢得多的几个可能原因是:

1)我的数据集大约有22万条记录,24MB,这还不足以显示Spark的缩放优势。

2)我的spark是在本地运行的,我应该在Amazon EC之类的地方运行。

3)在本地运行是可以的,但我的计算能力并没有降低。这是一个8吉格RAM 2015的Macbook。

4)Spark很慢,因为我在运行Python。如果我使用Scala,那会更好。(Con-argument:我听说很多人使用PySpark很好。)

哪一个是最有可能的原因,或最可信的解释?我想听听火花专家的意见。非常感谢你!!


Tags: 数据pandasdfsqlcount原因trainfilter