Scala集合操作實戰
所謂大資料就是:資料的集合以及對資料集合的操作技術的統稱
具體來說:
1、資料集合:會涉及資料的蒐集、儲存等,蒐集會有很多技術,儲存現在比較經典的是Hadoop,也有很多使用Kafka
2、對資料集合的操作技術:目前全球最火爆的是Spark
Spark框架的實現語言是Scala,首選的應用程式開發語言也是Scala,所以Scala對集合及資料集合的操作就至關重要且必須異常強大。
一個補充說明是:可能是巧合,Spark中對資料集合的操作的運算元與Scala中的集合的操作的運算元時一樣一樣的,也就是說你掌握了Scala中的集合操作,基本上就可以直接去開發Spark程式碼啦,非常的美妙。
關於Scala中資料的建立與操作:
1、最最原始的建立資料的方式是var arr = new Array[Int](5),指定陣列的型別是Int,且指定長度是5個元素
2、對陣列元素訪問的時候下標的範圍從0到length-1,超過length-1會包異常
3、最常用和經典的建立方式是Array[Int](3,6,8,1),直接通過類名傳入引數的方式建立陣列例項,其背後的實現原理是呼叫Array的工廠方法模式apply來例項化陣列及資料
4、關於Array本身的實現是藉助了JVM平臺上的Java語言的陣列的實現,陣列長度是不可變的
5、如果我們需要使用可變陣列的話,需要匯入scala包下面的ArrayBuffer來完成。
注:如果要增加元素的話,預設會直接追加到Arraybuffer的末尾,效率非常高
6、如果想在已經有的陣列上對每個元素的作用生成的陣列的話,則可以通過yield預發來完成,這在大資料中意義重大
(1)、它是在不修改已有陣列的基礎上生成新的陣列,非常適合於大資料的處理
(2)、在大資料處理中,例如Spark中業務操作的核心思想就類似於yield,通過使用function對每個元素的操作獲得新的元素構成新的集合,其實就是新的RDD,MapPartitionRDD
7、集合的操作往往需要豐富的操作運算元,例如用filter來過濾需要條件的元素,例如map用來加工每一個元素