<em id="bnjfz"><form id="bnjfz"></form></em>

                  千鋒教育-做有情懷、有良心、有品質的職業教育機構

                  當前位置:首頁  >  IT問答庫  >  大數據基礎知識

                  大數據之Spark框架中RDD和DataFrame的區別

                  發布:大數據 2022-02-24 17:50

                  大數據之Spark框架中RDD和DataFrame的區別

                  推薦答案

                    大數據覆蓋的技術點有很多,其中spark框架就是其中一種,本期小編為大家介紹的大數據培訓教程就是關于Spark框架中RDD和DataFrame的區別是什么?RDD(提供了一種高度受限的共享內存模型;DataFrame是一種分布式的數據集,并且以列的方式組合的。在spark中RDD、DataFrame是最常用的數據類型,在使用的過程中你知道兩者的區別和各自的優勢嗎?關于如何具體的應用今天就好好的分析一下。

                    大數據之Spark框架中RDD和DataFrame的區別:

                    一、RDD、DataFrame分別是什么?

                    1、什么是RDD?

                    RDD(Resilient Distributed Datasets)提供了一種高度受限的共享內存模型。即RDD是只讀的記錄分區的集合,只能通過在其他RDD執行確定的轉換操作(如map、join和group by)而創建,然而這些限制使得實現容錯的開銷很低。RDD仍然足以表示很多類型的計算,包括MapReduce和專用的迭代編程模型(如Pregel)等。

                    2、什么是DataFrame?

                    DataFrame是一種分布式的數據集,并且以列的方式組合的。類似于關系型數據庫中的表??梢哉f是一個具有良好優化技術的關系表。DataFrame背后的思想是允許處理大量結構化數據。提供了一些抽象的操作,如select、filter、aggregation、plot。DataFrame包含帶schema的行。schema是數據結構的說明。相當于具有schema的RDD。

                    二、RDD、DataFrame有什么特性?

                    在Apache Spark 里面DF 優于RDD,但也包含了RDD的特性。RDD和DataFrame的共同特征是不可性、內存運行、彈性、分布式計算能力。

                    它允許用戶將結構強加到分布式數據集合上。因此提供了更高層次的抽象。我們可以從不同的數據源構建DataFrame。例如結構化數據文件、Hive中的表、外部數據庫或現有的RDDs。DataFrame的應用程序編程接口(api)可以在各種語言中使用,包括Python、Scala、Java和R。

                    1、RDD五大特性:

                    1.(必須的)可分區的: 每一個分區對應就是一個Task線程。

                    2.(必須的)計算函數(對每個分區進行計算操作)。

                    3.(必須的)存在依賴關系。

                    4.(可選的)對于key-value數據存在分區計算函數。

                    5.(可選的)移動數據不如移動計算(將計算程序運行在離數據越近越好)。

                    2、DataFrame特性:

                    1.支持從KB到PB級的數據量

                    2.支持多種數據格式和多種存儲系統

                    3.通過Catalyst優化器進行先進的優化生成代碼

                    4.通過Spark無縫集成主流大數據工具與基礎設施

                    5.API支持Python、Java、Scala和R語言

                    三、RDD與DataFrame的區別

                    RDD是彈性分布式數據集,數據集的概念比較強一點。容器可以裝任意類型的可序列化元素(支持泛型)RDD的缺點是無從知道每個元素的【內部字段】信息。意思是下圖不知道Person對象的姓名、年齡等。

                  1

                    DataFrame也是彈性分布式數據集,但是本質上是一個分布式數據表,因此稱為分布式表更準確。DataFrame每個元素不是泛型對象,而是Row對象。

                    DataFrame的缺點是Spark SQL DataFrame API 不支持編譯時類型安全,因此,如果結構未知,則不能操作數據;同時,一旦將域對象轉換為Data frame ,則域對象不能重構。

                    DataFrame=RDD-【泛型】+schema+方便的SQL操作+【catalyst】優化

                    DataFrame本質上是一個【分布式數據表】

                  2

                    DataFrame優于RDD,因為它提供了內存管理和優化的執行計劃??偨Y為以下兩點:

                    a.自定義內存管理:當數據以二進制格式存儲在堆外內存時,會節省大量內存。除此之外,沒有垃圾回收(GC)開銷。還避免了昂貴的Java序列化。因為數據是以二進制格式存儲的,并且內存的schema是已知的。

                    b.優化執行計劃:這也稱為查詢優化器??梢詾椴樵兊膱绦袆摻ㄒ粋€優化的執行計劃。優化執行計劃完成后最終將在RDD上運行執行。

                    如果您想了解更多關于千鋒教育或者大數據培訓教程,可以咨詢我們的客服小姐姐,他們會為您做詳細的解答。

                  更多問題在線答疑

                  專業導師線上坐鎮
                  解答個性化學習難題

                  點擊提交問題
                  問答排行榜

                  01 網絡安全發展前景怎么樣

                  網絡安全培訓 網絡安全培訓班 網絡安全培訓機構
                  6020 人關注

                  02 大數據培訓機構哪些比較好

                  大數據培訓 大數據培訓班 大數據培訓機構
                  5389 人關注

                  03 大數據培訓分享:大數據分析的數據類型都有哪些

                  大數據培訓 大數據培訓班 大數據培訓機構
                  5062 人關注

                  04 網絡安全培訓分享:加密軟件該如何進行安全防護?

                  網絡安全培訓 網絡安全培訓班 網絡安全培訓機構
                  4733 人關注

                  05 大數據之Spark框架中RDD和DataFrame的區別

                  大數據培訓 大數據培訓班 大數據培訓機構
                  4561 人關注

                  06 如何進入大數據行業?相關學習路線是什么

                  大數據培訓 大數據培訓班 大數據培訓機構
                  4238 人關注

                  相關問題

                  學大數據需要具備什么基礎和知識點?

                  大數據時代,不僅帶來了先進的技術,也帶來了很多求職機會,很多...

                  大數據培訓之數據分析思維

                  想要學會數據分析,那么就還要學會數據分析思維,數據思維具有框...

                  大數據都在哪些應用領域比較常見?

                  快速發展的時代,大數據圍繞我們的日常生活方方面面,單單在疫情...

                  大數據培訓分享:大數據分析的數據類型都有哪些

                  互聯網時代,數據共享成了非常普遍的,各大企業對于同行業的數據...

                  大數據之Spark框架中RDD和DataFrame的區別

                  大數據覆蓋的技術點有很多,其中spark框架就是其中一種,本期小...

                  大數據開發工程師是做什么的?

                  隨著大數據在生活中應用變得廣泛,大數據開發工程師也逐漸的出現...

                  IT趣味問答挑戰賽

                  測一測
                  你知道多少IT梗

                  国内免费视频青女在线

                  <em id="bnjfz"><form id="bnjfz"></form></em>