2017-10-08 92 views
0

我希望我不会得到这个问题的反对票。这是令人困惑的多个火花版本,所以让我反问。请注意,这个问题纯粹是从性能角度和而不是开发人员的生产力/技能角度。我是新来的火花,许多人想知道2017年的最新状况。PySpark和斯卡拉

我知道与python的JIT问题,这不是问题在这里。这纯粹来自PySpark的角度。


我仍然无法相比,使用火花API从斯卡拉直接(或如果在所有它是虚假的陈述)时,为什么PySpark据报道听不进去。基于我的搜索,性能影响基于被访问的API。

对于RDD:基金会,来自spark worker的数据被序列化并发送给python worker。在某些操作中双重序列化会导致代价昂贵(当然,这取决于分阶段的管道和操作,但是如果有一个shuffle操作,那么这将导致python进程再次与java worker进行通信,从而导致序列化)。这个谈话sheds就在它上面。

但事情看起来不同,数据集API。据报道,它从所有语言(source)执行相同的操作。

的问题是:

  • 是我的理解正确的从上面?当PySpark实际上变慢时,有人可以提供更多的信息吗?或者是由于缺乏JIT而导致的缓慢,而不是任何错综复杂的情况。
  • 面临哪些实际问题与PySpark如果RDD的使用

回答

2

如果您使用的数据帧仅API内置函数那么Python的开销应该是非常低的(只是API包装)。但是,如果您使用UDF或映射到RDD的任何东西(例如地图),那么pyspark会更慢。

它慢的原因在您分享的视频中有很好的解释。