a.driver programs通過sparkcontent物件訪問spark
b.sparkcontent代表和乙個集群的鏈結
c.在shell中sparkcontent物件自動建立好了,就是sc
主要分為兩種:python shell和 scala shell
現在主要介紹scala shell下的一些簡單操作:
1.載入
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")
(1)建立變數時時必須使用val或者var
(2)scala的匿名函式和型別推斷
匿名函式:
val lines2=lines.filter(line=>line.comtains("world
"))
#整個括號中的內容定義了乙個匿名函式,傳入乙個引數line,返回指定結果
#注意line的型別不需要進行指定,能夠推斷出來
Spark基本概念
下面是spark的乙個日誌計數示例,該程式演示了spark的計算模型 下面是spark執行時涉及的各元件的概況圖 從rdd轉換和儲存角度,使用者程式對rdd通過多個函式進行操作,將rdd進行轉換。block manager管理rdd的物理分割槽,每個block就是節點上對應的乙個資料塊,可以儲存在記...
Spark的基本概念
2018年年末,開始spark學習 block 輸入可能以多個檔案的形式儲存在hdfs上,每個file都包含了很多塊,稱為block。inuptsplit 當spark讀取這些檔案作為輸入時,會根據具體資料格式對應的inputformat進行解析,一般是將若干個block合併成乙個輸入分片,稱為in...
spark學習 基本概念描述
什麼是spark?是apache旗下的一款開源專案,通俗的理解就是乙個分布式的大資料處理框架,有乙個很大優點,一棧式解決方案 spark與hadoop相比有哪些優點?為什麼spark比hadoop快?因為spark基於記憶體進行計算而hadoop基於磁碟進行計算,hadoop把每次計算的結果存回磁碟...