Databricks团队已经谈了很多关于为什么spark 2.x比1.6快的原因。 但是为什么在spark 2.x中运行DataFrames它可以生成更低级别的字节码?为什么RDD API无法实现?
另外,为什么仅从2.0制造Tungsten如此重要?在火花1.6中做这件事有什么问题?
答案 0 :(得分:-1)
对于初学者来说,第一个" Tungsten" Spark 1.4中引入了优化,并在1.5和1.6中进行了扩展。
Spark 2.0引入了向后不兼容的更改,由于项目管理政策,这些更改在1.x中是不可接受的。
结构化数据和受限语言需要更简单的优化规则。这就是为什么线性代数库或关系数据库具有非常积极的优化,而你的任意代码没有。
使用RDD API是不可能的,原因与您最喜欢的编译器™没有开箱即用的相同优化相同。它几乎不可能做到正确(您是否注意到Dataframe
使用的代码必须是确定性的并且必须为执行计划做出贡献,否则将被消除?)。