好程式設計師大資料高階班分享 Spark知識點集合
Spark是基於記憶體的迭代計算框架,適用於需要多次操作特定資料集的應用場合。需要反覆操作的次數越多,所需讀取的資料量越大,受益越大,資料量小但是計算密集度較大的場合,受益就相對較小(大資料庫架構中這是是否考慮使用Spark的重要因素)。
1、Spark的核心是什麼?
RDD是Spark的基本抽象,是對分散式記憶體的抽象使用,實現了以操作本地集合的方式來操作分散式資料集的抽象實現。RDD也是Spark非常核心的東西,它表示已被分割槽,不可變的並能夠被並行操作的資料集合,不同的資料集格式對應不同的RDD實現。
RDD必須是可序列化的。RDD可以cache到記憶體中,每次對RDD資料集的操作之後的結果,都可以存放到記憶體中,下一個操作可以直接從記憶體中輸入,省去了MapReduce大量的磁碟IO操作。這對於迭代運算比較常見的機器學習演算法, 互動式資料探勘來說,效率提升比較大。
2、Spark的適用場景有哪些?
由於 RDD的特性,Spark不適用那種非同步細粒度更新狀態的應用,例如web服務的儲存或者是增量的web爬蟲和索引。就是對於那種增量修改的應用模型不適合。總的來說Spark的適用面比較廣泛且比較通用。
3、Spark支援的程式語言有哪幾種?
Spark透過與程式語言整合的方式暴露RDD的操作,類似於DryadLINQ和FlumeJava,每個資料集都表示為RDD物件,對資料集的操作就表示成對RDD物件的操作。Spark主要支援的程式語言是Scala、java、python。
Scala
Spark使用Scala開發,預設使用Scala作為程式語言。編寫Spark程式比編寫Hadoop MapReduce程式要簡單的多,SparK提供了Spark-Shell,可以在Spark-Shell測試程式。
Java
Spark支援Java程式設計,但對於使用Java就沒有了Spark-Shell這樣方便的工具,其它與Scala程式設計是一樣的,因為都是JVM上的語言,Scala與Java可以互操作,Java程式設計介面其實就是對Scala的封裝。
Python
現在 Spark也提供了Python程式設計介面,Spark使用py4j來實現python與java的互操作,從而實現使用python編寫Spark程式。Spark也同樣提供了pyspark,一個Spark的python shell,可以以互動式的方式使用Python編寫Spark程式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2645323/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料高階班分享10個大資料專業術語程式設計師大資料
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師分享大資料教程之執行緒高階部分程式設計師大資料執行緒
- 好程式設計師大資料學習路線分享高階函式程式設計師大資料函式
- 好程式設計師大資料紀實:HBase知識點集中總結程式設計師大資料
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive
- 好程式設計師大資料培訓分享Spark技術總結程式設計師大資料Spark
- 好程式設計師大資料學習路線分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料培訓分享Spark需要什麼基礎?程式設計師大資料Spark
- 好程式設計師web前端分享Cookie知識程式設計師Web前端Cookie
- 好程式設計師雲端計算教程分享Mysql技術知識點程式設計師MySql
- 好程式設計師Java培訓分享JDK工具條知識點程式設計師JavaJDK
- 好程式設計師大資料分享Spark任務和叢集啟動流程程式設計師大資料Spark
- 好程式設計師大資料學習路線分享Hadoop階段的高可用配置程式設計師大資料Hadoop
- 好程式設計師雲端計算培訓分享msyql知識點講解程式設計師
- 好程式設計師分享Web前端知識之HTML程式設計師Web前端HTML
- 好程式設計師Java教程分享Java技術知識點總結程式設計師Java
- 好程式設計師大資料教程分享之Hadoop優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師分享大資料三大必備技能程式設計師大資料
- 好程式設計師Web前端分享一些小知識!程式設計師Web前端
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師雲端計算培訓分享msyql高階操作程式設計師
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料教程分享大資料之流程控制程式設計師大資料
- 好程式設計師分享大資料入門教程:Hadoop和spark的效能比較程式設計師大資料HadoopSpark
- 好程式設計師大資料培訓分享常見的Hadoop和Spark專案程式設計師大資料HadoopSpark
- 高階Java程式設計師要具備哪些知識Java程式設計師
- 好程式設計師大資料學習路線分享Scala系列之集合操作函式程式設計師大資料函式
- 好程式設計師Java培訓面試進階知識點之微服務框架程式設計師Java面試微服務框架
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師前端教程CSS基礎知識點程式設計師前端CSS
- 好程式設計師web前端分享web前端入門知識程式設計師Web前端
- 好程式設計師JavaScript分享ES6相關知識程式設計師JavaScript
- 好程式設計師web前端教程分享JS基礎知識程式設計師Web前端JS
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料