spark用到scala
一、spark產(chǎn)生背景
MapReduce 局限性
僅支持map和reduce兩種語義操作
處理效率低,耗費(fèi)時(shí)間長
不適合處理迭代計(jì)算、交互式處理、實(shí)時(shí)流處理等
更多的應(yīng)用于大規(guī)模批處理場(chǎng)景
計(jì)算框架種類多,選型復(fù)雜
希望能簡化技術(shù)選型,在一個(gè)統(tǒng)一的框架下,能夠完成批處理等
二、spark工作原理
1、Spark簡介
Spark提供多種運(yùn)行模式
2、Spark特點(diǎn)
計(jì)算高效
通用易用
提供豐富開發(fā)api,支持scala、java、python 、R開發(fā)語言
集成批處理、流處理、交互式計(jì)算、機(jī)器學(xué)習(xí)算法、圖計(jì)算
運(yùn)行模式多樣
3、Spark核心概念-RDD
RDD-彈性分布式數(shù)據(jù)集(Resilient Distributed Datasets)
Spark基于RDD進(jìn)行計(jì)算
分布在集群中的只讀對(duì)象集合(由多個(gè)Partition構(gòu)成)
可以存儲(chǔ)在磁盤或內(nèi)存中
可以通過并行轉(zhuǎn)換操作構(gòu)造
失效后自動(dòng)重構(gòu)
4、RDD操作
1)Transformation
? ? ? ? ? ? ? 將Scala集合或者Hadoop數(shù)據(jù)集構(gòu)造一個(gè)新的RDD
? ? ? ? ? ? ? 通過一有的RDD產(chǎn)生新的RDD
? ? ? ? ? ? ? 只記錄轉(zhuǎn)換關(guān)系,不觸發(fā)計(jì)算
? ? ? ? ? ? ? 如Map、filter等。
2)Action