我們做spark開發 會使用很多spark的高階函數 所以 今天我就在linux服務上使用scala高階函數

聲明一個List集合:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20150114/20150114092118343.png" alt="\">
List集合所在的包已經被預定義自動引入,所以此處就不需要在引入包了,這裡直接使用List實例化對象,其實用List的object對象的apply方法
我們使用map函數把list中的每個值都乘以3:

x表示l中每一個元素,map對l中的每一個元素進行遍歷操作,由於List中只有一種類型的元素,所以我們在執行馬屁操作的時候可以省略其類型,如下所示:

List集合中只有一個參數的時候,我們可以去掉參數中的括號:

為了能保存所有代碼,我還是使用IDEA吧
scala中的集合:
集合主要有List、Set、Tuple、Map等
在scala下的org.scala.collection下創建scala類CollectionOperations

在IDEA中創建一個List實例:

我們看一下List代碼實現:

源碼中說明了其內部是apply的方式來完成實例化的:
使用同樣的方式實例化Set:

我們可也看下Set實例化對象的實現:

接下來我們在linux命令行終端中砍下集合的操作,首先看Set:

發現Set中不會存儲重復的元素
下面看下Tuple的申明和使用:

tuple 訪問的時候下標是從1開始的
對於Tuple而言,如果只有兩個元素的時候我們還可以使用如下方式創建:

接下來我們看下Map的定義吧:

Map本身使用的是可變參數的方式,所以可以給Map賦多個值:

我們看一下Option類型,Option代表了一個可有可無的值:

Option有兩個子類:Some 和None,下面看看Option的使用:


接下來我們看下filter的使用:

對集合的zip操作:


下面我們看下partition對集合的切割操作:

使用flatten的多集合進行扁平化操作:

flatMap是map和flatten操作的集合,先進行map操作後再進行flatten操作:
