首页 文章

PySpark和Scala [重复]

提问于
浏览
0

这个问题在这里已有答案:

我希望我不会对这个问题投反对票 . 多个火花版本令人困惑,所以无论如何我都要问它 . 请注意,这个问题纯粹是从性能角度而非开发人员 生产环境 力/技能角度来看 . 而且我是新手,很多人想从2017年的角度了解最新状态 .

我知道python的JIT问题,这不是问题 . 它纯粹来自PySpark的观点 .


我仍然无法理解为什么PySpark与直接使用来自scala的spark api相比较慢(或者如果它是一个错误的陈述) . 根据我的搜索,性能影响基于所访问的API .

对于RDD:基本上,来自spark worker的数据被序列化并发送给python worker . 某些操作中的双序列化使得它很昂贵(当然它取决于分阶段的管道和操作 . 但是如果有一个shuffle操作,那么这将导致python进程再次与java worker通信,因此序列化) . 这个谈话sheds点亮了它 .

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

问题是:

  • 从上面我的理解是否正确? PySpark实际缓慢的时候有人能说得更多吗?或者缓慢只是因为缺乏JIT,而不是任何错综复杂的错误 .

  • 如果使用RDD,PySpark会遇到哪些实际问题

1 回答

  • 2

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

    在你分享的视频中很好地解释了它变慢的原因 .

相关问题