2016-07-21 178 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