当前位置:  开发笔记 > 编程语言 > 正文

为什么我的Spark运行速度比纯Python慢​​?性能比较

如何解决《为什么我的Spark运行速度比纯Python慢​​?性能比较》经验,为你挑选了1个好方法。

Spark新手在这里.我尝试使用Spark在我的数据框架上做一些pandas动作,并且令人惊讶的是它比纯Python慢​​(即在Python中使用pandas包).这是我做的:

1)在Spark中:

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

返回结果大约需要30秒.但使用Python需要大约1秒钟.

2)在Spark中:

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

同样的事情,在Spark中大约需要30秒,在Python中需要1秒.

我的Spark比纯Python慢​​得多的几个原因:

1)我的数据集大约有220,000条记录,24 MB,而且这个数据集不足以显示Spark的扩展优势.

2)我的火花在本地运行,我应该在像Amazon EC这样的东西上运行它.

3)在本地运行是可以的,但我的计算能力并没有削减它.这是一款8 Gig RAM 2015 Macbook.

4)Spark很慢,因为我正在运行Python.如果我使用Scala,它会好得多.(Con论点:我听说很多人都在使用PySpark.)

哪一个最有可能是原因,还是最可信的解释?我很想听到一些Spark专家的意见.非常感谢你!!



1> Durga Viswan..:

与小型数据集上的pyspark相比,Python肯定会表现得更好.处理大型数据集时,您会看到不同之处.

默认情况下,在SQL上下文或Hive上下文中运行spark时,默认情况下将使用200个分区.您需要将其更改为10或使用的任何值sqlContext.sql("set spark.sql.shuffle.partitions=10");.它肯定比默认更快.

1)我的数据集大约有220,000条记录,24 MB,而且这个数据集不足以显示Spark的扩展优势.

你是对的,在较低的数量上你不会看到太大的差异.Spark也可以更慢.

2)我的火花在本地运行,我应该在像Amazon EC这样的东西上运行它.

对于你的音量,它可能没有多大帮助.

3)在本地运行是可以的,但我的计算能力并没有削减它.这是一款8 Gig RAM 2015 Macbook.

同样,对于20MB数据集也无关紧要.

4)Spark很慢,因为我正在运行Python.如果我使用Scala,它会好得多.(Con论点:我听说很多人都在使用PySpark.)

单独站立就会有所不同.Python比scala具有更多的运行时开销,但在具有分布式功能的较大集群上,它无关紧要


“您是正确的,小批量交易不会有太大区别”-对于OP的情况,这可以(大致)量化。您会在0.1 GB,1GB,10GB,100GB,1TB上看到优势吗?如果有人可以指出问题的答案,那将很有帮助。
推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有