好程式設計師大資料培訓分享Spark技術總結
好程式設計師 大資料 培訓分享 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/69913864/viewspace-2699092/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師大資料培訓分享spark之Scala程式設計師大資料Spark
- 好程式設計師大資料培訓分享大資料兩大核心技術程式設計師大資料
- 好程式設計師大資料培訓分享Hadoop技術優缺點程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Spark需要什麼基礎?程式設計師大資料Spark
- 好程式設計師大資料培訓分享MapReduce理解程式設計師大資料
- 好程式設計師大資料培訓分享常見的Hadoop和Spark專案程式設計師大資料HadoopSpark
- 好程式設計師大資料培訓分享HDFS讀流程程式設計師大資料
- 好程式設計師大資料培訓分享大資料的應用程式設計師大資料
- 好程式設計師大資料培訓分享大資料還學嗎?程式設計師大資料
- 好程式設計師大資料培訓分享mysql資料型別程式設計師大資料MySql資料型別
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師大資料培訓分享:Hadoop叢集同步程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享大資料的影響一程式設計師大資料
- 好程式設計師大資料培訓分享大資料就業方向有哪些?程式設計師大資料就業
- 好程式設計師大資料培訓分享大資料面試寶典三程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典四程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典六程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典一程式設計師大資料面試
- 好程式設計師大資料培訓分享大資料面試寶典二程式設計師大資料面試
- 好程式設計師大資料培訓分享Hadoop的shuffle過程程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop分散式叢集程式設計師大資料Hadoop分散式
- 好程式設計師大資料培訓分享MySQL8.0新特性程式設計師大資料MySql
- 好程式設計師大資料培訓分享Hadoop入門進階程式設計師大資料Hadoop
- 好程式設計師大資料培訓分享Hadoop怎樣處理資料?程式設計師大資料Hadoop
- 好程式設計師Java培訓分享Java基礎知識總結程式設計師Java
- 好程式設計師HTML5培訓技術分享JavaScript 閉包程式設計師HTMLJavaScript
- 好程式設計師大資料培訓分享之Ambari和ClouderaManager對比程式設計師大資料Cloud
- 好程式設計師大資料培訓分享之hive儲存過程程式設計師大資料Hive儲存過程
- 好程式設計師大資料培訓分享HBase Filter過濾器概述程式設計師大資料Filter過濾器
- 好程式設計師大資料培訓分享如何區分Hive與HBase程式設計師大資料Hive
- 好程式設計師大資料培訓分享settings和mapping的意義程式設計師大資料APP
- 好程式設計師Java培訓Java程式設計師必學技術程式設計師Java
- 好程式設計師大資料培訓分享之MySQL資料庫SQL簡介程式設計師大資料MySql資料庫
- 好程式設計師web前端培訓分享JS面試題總結一程式設計師Web前端JS面試題
- 好程式設計師大資料培訓分享之《MySQL資料庫》常用函式整理程式設計師大資料MySql資料庫函式
- 好程式設計師大資料培訓分享MySQL資料庫儲存引擎簡介程式設計師大資料MySql資料庫儲存引擎
- 好程式設計師大資料培訓分享之hive常用內部函式程式設計師大資料Hive函式
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive