Spark中DataSet與DataFrame之間比較_DataSet創建的三種方式
DataSets
- 數據集是不可變的。與 RDD 一樣,它們不能被刪除或丟失。
- 數據集具有一個編碼器,可將類型指定的 JVM 物件轉換為表格表示形式。
- 數據集擴展了 DataFrame API。從概念上講,泛型無類型化 「Row」 的數據集是一個 JVM 物件,被視為 DataFrame 的一個column。
- 數據集是強類型的(type-safe),因此 API 目前僅在 Scala 和Java,它們是靜態類型的語言。動態類型化語言,例如 Python和 R 不支援資料集 API。
與使用 DataFrames 和 RDD 相比
DataSet數據集具有一些獨特的優勢和好處:
- Datasets 是靜態類型的,因此 Datasets 提供編譯時類型安全性。編譯時類型安全意味著 Spark 可以檢測生產中的語法和語義錯誤,從而節省大量的開發人員和運營成本及時間。
- 數據集的計算速度比 RDD 快,尤其是對於聚合查詢。數據集提供由 Catalyst 和 Tungsten 支援的其他查詢優化。
- 數據集可以改進記憶體使用和緩存。Spark 了解數據集的數據結構並優化記憶體中的佈局。
- 數據集 API 還提供了方便的聚合操作函數。包括 Sum、Average、Join 和 Group-by。
在Spark中創建數據集的三種方法
用 Scala 撰寫的,它使用 toDS 函數從一個序列來間接創建一個數據集。
Which function is applied to create a data set from a sequence?
Create()
DSRdd()
(O)toDS()
seqDS()
You can utilize the ‘toDS()’ function to create a data set from a sequence in Apache Spark.
留言
張貼留言