2016-07-21 132 views
2

出于比较的目的,假设我们有一个包含两列“A”,“B”的表“T”。我们在一些HDFS数据库中也有一个hiveContext。我们做一个数据帧:Spark DataFrame vs sqlContext

从理论上讲,它下面的更快:

sqlContext.sql("SELECT A,SUM(B) FROM T GROUP BY A") 

df.groupBy("A").sum("B") 

其中“东风”是指T.对于这些简单的各式一个数据帧的总体操作,是否有什么理由为什么一个人应该比另一个更喜欢一种方法?

回答

3

Spark开发人员为优化做出了巨大的努力。 DataFrame Scala和DataFrame SQL之间的性能是无法区分的。即使对于DataFrame Python,差异在于将数据收集到驱动程序。

它打开一个新的世界

It doesn't have to be one vs. another

我们可以只选择什么都这样,我们熟悉

通过databricks enter image description here

公布的性能对比
5

不,这些应该归结为相同的执行计划。在Spark SQL引擎下面使用相同的优化引擎,催化剂优化器。您可以随时通过查看Spark UI来检查此问题,甚至可以在生成的DataFrame上调用explain