Spark精华问答:DataFrame与RDD的主要区别在哪?
Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎。目前的熱度已經超過Hadoop,正所謂青出于藍而勝于藍,今天我們就來看看關于park?的精華問答吧。
1
Q:DataFrame是什么?
A:DataFrame是一種以RDD為基礎的分布式數據集,類似于傳統數據庫中的二維表格。
Q:DataFrame與RDD的主要區別在于?
A:DataFrame帶有schema元信息,即DataFrame所表示的二維表數據集的每一列都帶有名稱和類型。這使得SparkSQL得以洞察更多的結構信息,從而對藏于DataFrame背后的數據源以及作用于DataFrame之上的變換進行了針對性的優化,最終達到大幅提升運行時效率的目標。
反觀RDD,由于無從得知所存數據元素的具體內部結構,Spark Core只能在stage層面進行簡單、通用的流水線優化。
Q:DataFrame 特性
A:1、支持從KB到PB級的數據量
2、支持多種數據格式和多種存儲系統
3、通過Catalyst優化器進行先進的優化生成代碼
4、通過Spark無縫集成主流大數據工具與基礎設施
5、API支持Python、Java、Scala和R語言
Q:RDD,全稱為?
A:Resilient Distributed Datasets,意為容錯的、并行的數據結構,可以讓用戶顯式地將數據存儲到磁盤和內存中,并能控制數據的分區。同時,RDD還提供了一組豐富的操作來操作這些數據。
Q:RDD有什么特點?
A:它是在集群節點上的不可變的、已分區的集合對象。
通過并行轉換的方式來創建如(map, filter, join, etc)。
失敗自動重建。
可以控制存儲級別(內存、磁盤等)來進行重用。
必須是可序列化的。
是靜態類型的。
小伙伴們沖鴨,后臺留言區等著你!
關于Spark,今天你學到了什么?還有哪些不懂的?除此還對哪些話題感興趣?快來留言區打卡啦!留言方式:打開第XX天,答:……
同時歡迎大家搜集更多問題,投稿給我們!風里雨里留言區里等你~
福利
1、掃描添加小編微信,備注“姓名+公司職位”,加入【云計算學習交流群】,和志同道合的朋友們共同打卡學習!
推薦閱讀:
Elastic Jeff Yoshimura:開源正在開啟新一輪的創新 | 人物志
深入淺出Docker 鏡像 | 技術頭條
19歲當老板, 20歲ICO失敗, 21歲將項目掛到了eBay, 為何初創公司如此艱難?
碼二代的出路是什么?
機器學習萌新必備的三種優化算法 | 選型指南
小程序的侵權“生死局”
@996 程序員,ICU 你真的去不起!
真香,朕在看了!
總結
以上是生活随笔為你收集整理的Spark精华问答:DataFrame与RDD的主要区别在哪?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost::contract模块实现c
- 下一篇: 不用的卡注销就可以了吗 注销不彻底两个月