2017-06-12 36 views
2

星火2 Scala中的學習過程中,我發現,我們可以用兩種方式SparkSQL查詢數據:SQL和SQL沒有在SparkSQL

  1. 火花。 sql(SQL_STATEMENT)//變量「spark」是SparkSession的一個實例
  2. DataSet/DataFrame。 選擇/。凡/ .groupBy ....

我的問題是有什麼差異(功能,性能等)bewtween的呢? 我試圖找到互聯網或他們的文檔上anwser,但失敗了,所以我想聽聽你的意見

回答

1

我認爲都與SQL查詢和不SQL查詢查詢是等價的,平等的。兩者都在內部,並使用相同的引擎。但我更喜歡用戶沒有SQL查詢,這些查詢更易於編寫並提供某種級別的安全性。

其中

1. spark.sql(SQL_STATEMENT) // variable "spark" is a SparkSession 
    2. DataSet/DataFrame.select/.where/.groupBy.... 

我會選擇大多數情況下2號,因爲它提供了類型安全

+0

這不是真的有些lavel,例如,你不能在'DataFrame' API中使用子查詢。 – mtoto

+0

是的,這是真的,我們不能在DataFrame中使用子查詢Api忘了提及。 Thankyou –

+0

@ShankarKoirala首先感謝您的意見,但我想知道您意見的參考是什麼?爲什麼你知道他們在裏面使用相同的引擎? – llyjy21