【问题标题】:PySpark and Scala [duplicate]PySpark 和 Scala [重复]
【发布时间】: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


    【解决方案1】:

    如果您只在数据帧 api 上使用内置函数,那么 python 的开销应该非常低(只是 api 包装)。但是,如果您使用 UDF 或任何映射到 RDD(例如 map)的东西,那么 pyspark 会慢得多。

    您分享的视频中很好地解释了它变慢的原因。

    【讨论】:

      猜你喜欢
      • 2014-03-17
      • 1970-01-01
      • 2019-01-24
      • 2012-12-23
      • 2018-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      相关资源
      最近更新 更多