【发布时间】:2018-03-19 14:47:24
【问题描述】:
我希望我不会对这个问题投反对票。多个火花版本令人困惑,所以无论如何让我问一下。请注意,这个问题纯粹是从性能角度来看的,不是开发人员生产力/技能的角度。我是 spark 新手,很多人想从 2017 年的角度了解最新状态。
我知道 python 的 JIT 问题,这不是这里的问题。这纯粹是从 PySpark 的角度来看的。
与直接使用来自 scala 的 spark api 相比,我仍然无法理解为什么 PySpark 速度较慢(或者如果它根本是一个错误的陈述)。根据我的搜索,性能影响取决于所访问的 API。
对于 RDD:从根本上说,来自 spark worker 的数据被序列化并发送到 python worker。某些操作中的双重序列化使其变得昂贵(它当然取决于分阶段的管道和操作。但是如果有一个随机操作,那么这将导致 python 进程再次与 java worker 通信,从而进行序列化)。这个讲座sheds亮就可以了。
但使用数据集API 时情况看起来有所不同。据报道,它在所有语言中的表现都是一样的 (source)。
问题是:
- 我的理解是否正确?当 PySpark 真的很慢时,有人可以更清楚地说明吗?或者只是由于缺乏 JIT 而导致缓慢,而不是任何 pyspark 错综复杂。
- 如果使用 RDD,PySpark 会面临哪些实际问题
【问题讨论】:
标签: scala apache-spark pyspark