3 Spark編程接口編程
Spark用Scala語言實現了RDD的API。Scala是一種基於JVM的靜態類型、函數式、面向對象的語言。不過操做RDD不限於函數式語言,像面嚮對象語言也能夠類的函數.緩存
在使用spark時,須要寫driver程序來連接集羣運行worker,如圖二中每一個集羣中都會有本身的緩存和input data分佈式存儲系統中的數據。driver會定義一個或者多個RDD,並執行RDD上面的action。網絡
spark在運行時,用戶的driver程序會啓動集羣上面的worker,worker會在文件系統中的讀取數據的block,而後將計算完成的數據存儲在cache中。閉包
用戶執行rdd時是須要傳遞參數的,例如scala中傳遞的閉包,scala中將閉包標識爲對象,這些閉包在傳遞過程當中被序列化,經過網絡傳輸,傳輸到其餘節點上裝載。編程語言
RDD是靜態類型對象,經過泛型肯定RDD的類型。分佈式
3.1函數式編程
表2中列出了rdd一些轉換和操做,這些操做只針對鍵值對,這些方法的名稱和通常的函數式編程語言中的名稱是有一樣的含義,好比map是一對一的操做,flatmap是一對多的操做。用戶還能夠將結果顯示緩存起來-》catch(),還能夠將RDD顯示的分區,好比groupbykey,sort,reducebykey。函數