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 函數從一個序列來間接創建一個數據集。

從文字檔創建數據集,應用原始 “String”數據類型添加到顯式架構聲明中。

使用 JSON 檔案創建數據集



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.

留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

經得起原始碼資安弱點掃描的程式設計習慣培養(五)_Missing HSTS Header

(2021年度)駕訓學科筆試準備題庫歸納分析_法規是非題