我們做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操作: