在这里点燃新人的火花。我试着用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很好。)
哪一个是最有可能的原因,或最可信的解释?我想听听火花专家的意见。非常感谢你!!
目前没有回答
相关问题 更多 >
编程相关推荐