Spark基本概念
阿新 • • 發佈:2017-08-22
ams lec all count 抽象類 sil 測試 內容 pre
Spark基本概念
1.SparkContent
a.Driver programs通過SparkContent對象訪問Spark
b.SparkContent代表和一個集群的鏈接
c.在shell中SparkContent對象自動創建好了,就是sc
2.Spark中的Shell
主要分為兩種:python shell和 scala shell
現在主要介紹scala shell下的一些簡單操作:
1.加載
3.RDDs
RDDs是Resilient distrubuted datasets的簡寫,意為彈性分布式數據集。
這些RDDs,並行分布在整個集群中。
RDDs是Spark分發數據和計算的基礎抽象類。
一個RDDs是一個不可改變的分布式集合對象,因此在使用scala編寫時,前面加修飾符val
Spark中,左右的操作都是通過RDDs的c創建、轉換、操作完成的
一個RDDs內部其實是由許多Partition(分片)組成,但是我們在操作時只需要關註RDDs即可
分片:分片是Spark並行處理的單元,Spark順序的、並行的處理分片。不同的分片可以在不同的節點上計算
RDDs的創建:
(1)sc.parallelize()
一般只是測試使用:
val rdd=sc.parallelize(Array(1,2,2,4),4) 第一個參數:帶並行化處理的集合 第二個參數:分區個數
下面還有一些我們測試時經常使用的函數
rdd.count() #統計rdds中的行數
rdd.collect().foreach(print) #遍歷rdds中的每個元素,但是遍歷各個分片的的先後順序是隨機的
(2)加載外部數據集
val rddtext=sc.textFile("filepath")
4.scala基礎知識
(1)創建變量時時必須使用val或者var
(2)scala的匿名函數和類型推斷
匿名函數:
val lines2=lines.filter(line=>line.comtains("world"))
#整個括號中的內容定義了一個匿名函數,傳入一個參數line,返回指定結果
#註意line的類型不需要進行指定,能夠推斷出來
Spark基本概念