<form id="lj4p3"><tr id="lj4p3"><u id="lj4p3"></u></tr></form>

    <th id="lj4p3"><track id="lj4p3"><rt id="lj4p3"></rt></track></th>
    
    

          <th id="lj4p3"><track id="lj4p3"><dl id="lj4p3"></dl></track></th><em id="lj4p3"><tr id="lj4p3"></tr></em>

          教育行業A股IPO第一股(股票代碼 003032)

          全國咨詢/投訴熱線:400-618-4000

          DataFrame是什么意思?與RDD相比有哪些優點?

          更新時間:2021年03月23日11時56分 來源:傳智教育 瀏覽次數:


          DataFrame被稱為SchemaRDD。DataFrame使Spark具備了處理大規模結構化數據的能力。在Spark中,DataFrame是一種以RDD為基礎的分布式數據集,因此DataFrame可以完成RDD的絕大多數功能,在開發使用時,也可以調用方法將RDD和DataFrame進行相互轉換。DataFrame的結構類似于傳統數據庫的二維表格,并且可以從很多數據源中創建,例如結構化文件、外部數據庫、Hive表等數據源。下面,通過圖1來了解DataFrame與RDD在結構上的區別。

          1616470817236_DataFrame與RDD區別.jpg

          DataFrame與RDD區別

          在圖1中,左側為RDD[Person]數據集,右側是DataFrame數據集。DataFrame可以看作是分布式的Row對象的集合,在二維表數據集的每一列都帶有名稱和類型,這就是Schema元信息,這使得Spark框架可以獲取更多的數據結構信息,從而對在DataFrame背后的數據源以及作用于DataFrame之上數據變換進行了針對性的優化,最終達到大幅提升計算效率;同時,DataFrame與Hive類似,支持嵌套數據類型(例如Struct、Array、Map)。

          RDD是分布式的Java對象的集合,例如圖4-3中的RDD[Person]數據集,雖然它以Person為類型參數,但是對象內部之間的結構相對于Spark框架本身是無法得知的,這樣在轉換數據形式時效率相對較低。

          總的來說,DataFrame除了提供比RDD更豐富的算子以外,更重要的特點是提升Spark框架執行效率、減少數據讀取時間以及優化執行計劃。有了DataFrame這個更高層次的抽象后,處理數據就更加簡單了,甚至可以直接用SQL來處理數據,這對于開發者來說,易用性有了很大的提升。不僅如此,通過DataFrame API或SQL處理數據,Spark 優化器(Catalyst)會自動優化,即使我們寫的程序或SQL不高效,程序也可以高效的執行。



          猜你喜歡:

          spark筆記之RDD容錯機制之checkpoint

          Scala的方法和函數介紹【大數據文章】

          ReduceTask的工作機制【傳智大數據文章】

          RDD為什么要進行數據持久化?持久化詳細操作步驟示例

          傳智教育大數據項目開發培訓

          久久热精品视频_久久热最新地址_久久热在线精品