1. 程式人生 > >Spark基本概念

Spark基本概念

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基本概念