Spark DataFrame vs sqlContext

时间:2016-07-21 00:19:41

标签: apache-spark hive pyspark

为了进行比较,假设我们有一张表" T"有两列" A"," B"。我们还在一些HDFS数据库中运行了一个hiveContext。我们制作了一个数据框:

理论上,以下哪一项更快:

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

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

其中" df"是一个引用T的数据框。对于这些简单的聚合操作,有没有理由为什么一个方法应该优先于另一个?

2 个答案:

答案 0 :(得分:5)

不,这些应该归结为相同的执行计划。 Spark SQL引擎下面使用了相同的优化引擎,催化剂优化器。您可以通过查看spark UI,或者甚至在结果DataFrame上调用explain来自行检查。

答案 1 :(得分:4)

Spark开发人员已经做出了很大的优化。 DataFrame Scala和DataFrame SQL之间的性能无法区分。即使对于DataFrame Python,不同的是将数据收集到驱动程序时。

  

它打开了一个新世界

     

It doesn't have to be one vs. another

     

我们可以选择适合自己的方式

databricks发布的效果比较 enter image description here