无码色偷偷亚洲国内自拍_国产男女性潮高清免费网站_69SEX久久精品国产麻豆_日本高清在线一区二区三区

 千鋒教(jiao)育(yu)-做有情懷、有良(liang)心、有品質(zhi)的職業教(jiao)育(yu)機構

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

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

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

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

推薦答案

  大數(shu)據(ju)覆(fu)蓋的(de)(de)(de)技術點有很多,其中(zhong)spark框架(jia)就(jiu)是(shi)其中(zhong)一種,本期(qi)小編(bian)為(wei)大家介(jie)紹的(de)(de)(de)教程就(jiu)是(shi)關(guan)(guan)于Spark框架(jia)中(zhong)RDD和DataFrame的(de)(de)(de)區別是(shi)什么(me)?RDD(提供(gong)了一種高(gao)度受限的(de)(de)(de)共享內存模型(xing);DataFrame是(shi)一種分布式的(de)(de)(de)數(shu)據(ju)集,并且以列的(de)(de)(de)方式組合(he)的(de)(de)(de)。在spark中(zhong)RDD、DataFrame是(shi)最常用(yong)(yong)的(de)(de)(de)數(shu)據(ju)類型(xing),在使用(yong)(yong)的(de)(de)(de)過程中(zhong)你知(zhi)道兩(liang)者的(de)(de)(de)區別和各(ge)自(zi)的(de)(de)(de)優勢嗎?關(guan)(guan)于如何具體的(de)(de)(de)應用(yong)(yong)今天就(jiu)好好的(de)(de)(de)分析一下(xia)。

  大數據之(zhi)Spark框架中RDD和DataFrame的(de)區別:

  一、RDD、DataFrame分別是什么?

  1、什么是RDD?

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

  2、什么是DataFrame?

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

  二、RDD、DataFrame有什(shen)么特性?

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

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

  1、RDD五大特性:

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

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

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

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

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

  2、DataFrame特性:

  1.支持從KB到PB級的數(shu)據量(liang)

  2.支持多種(zhong)數(shu)據格式和多種(zhong)存儲系(xi)統(tong)

  3.通過(guo)Catalyst優化器進(jin)行(xing)先進(jin)的優化生成代(dai)碼

  4.通過(guo)Spark無(wu)縫(feng)集成(cheng)主流(liu)大(da)數據(ju)工具與基(ji)礎(chu)設(she)施

  5.API支持Python、Java、Scala和(he)R語(yu)言

  三、RDD與(yu)DataFrame的區別

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

1

  DataFrame也是(shi)(shi)(shi)彈性分布式(shi)數據(ju)集,但是(shi)(shi)(shi)本質(zhi)上是(shi)(shi)(shi)一個(ge)(ge)分布式(shi)數據(ju)表(biao),因此稱為分布式(shi)表(biao)更準確(que)。DataFrame每個(ge)(ge)元素(su)不是(shi)(shi)(shi)泛型(xing)對(dui)象,而是(shi)(shi)(shi)Row對(dui)象。

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

  DataFrame=RDD-【泛型】+schema+方便的SQL操(cao)作(zuo)+【catalyst】優化(hua)

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

2

  DataFrame優于(yu)RDD,因為(wei)它(ta)提供了內存管理(li)和優化的執行計劃(hua)。總結(jie)為(wei)以下兩(liang)點:

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

  b.優(you)化執行(xing)計(ji)劃:這也稱為(wei)查詢優(you)化器。可以為(wei)查詢的執行(xing)創建一(yi)個優(you)化的執行(xing)計(ji)劃。優(you)化執行(xing)計(ji)劃完成后(hou)最終將在RDD上運行(xing)執行(xing)。

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

最新問答資訊

01 unity用什么編程語言?unity學習難度大嗎

學習 unity 語言
6020 人關注

02 python容易學嗎?學好python有什么好處?

學習 python 工作 培訓
5389 人關注

03 html是什么語言?html學習難嗎?

學習 html 語言 可以
5062 人關注

04 c語言難學嗎?c語言學好要多久?

語言 技術 學習
4733 人關注

06 學好平面設計要多久?報速成班靠譜嗎?

平面 設計 學習 時間
4238 人關注

技術干貨

更多 >

相關問題

學大(da)數(shu)據需要具(ju)備什么基礎和知識點?

大數據時(shi)代,不僅帶來了(le)先(xian)進的技術(shu),也(ye)帶來了(le)很多求職機(ji)會(hui),很多...

大數據(ju)培訓之數據(ju)分析思維(wei)

想要學(xue)會數據分析(xi),那么就還要學(xue)會數據分析(xi)思維(wei),數據思維(wei)具有框...

大數據都在哪些應(ying)用領(ling)域比較常見(jian)?

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

大數(shu)據(ju)培訓(xun)分享:大數(shu)據(ju)分析的數(shu)據(ju)類型(xing)都(dou)有(you)哪(na)些

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

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

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

大數據開發工程(cheng)師是做(zuo)什么(me)的?

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

測一測
你知道多少IT梗