SparkSql:數據抽象(DataFrame與DataSet詳解)

DataFrame

  • 什麼是DataFrame
    DataFrame是一種以RDD爲基礎的帶有Schema元信息的分佈式數據集,類似於傳統數據庫的二維表格 。
    在這裏插入圖片描述

DataSet

  • 什麼是DataSet
    DataSet是保存了更多的描述信息,類型信息的分佈式數據集。
    與RDD相比,保存了更多的描述信息,概念上等同於關係型數據庫中的二維表。
    與DataFrame相比,保存了類型信息,是強類型的,提供了編譯時類型檢查,
    調用Dataset的方法先會生成邏輯計劃,然後被spark的優化器進行優化,最終生成物理計劃,然後提交到集羣中運行!
    在這裏插入圖片描述

DataSet包含了DataFrame的功能,
Spark2.0中兩者統一,DataFrame表示爲DataSet[Row],即DataSet的子集。
DataFrame其實就是Dateset[Row]
在這裏插入圖片描述

RDD、DataFrame、DataSet的區別

  • 結構圖解
    在這裏插入圖片描述
    RDD[Person]
    以Person爲類型參數,但不瞭解 其內部結構。

DataFrame
提供了詳細的結構信息schema列的名稱和類型。這樣看起來就像一張表了


DataSet[Person]
不光有schema信息,還有類型信息


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章