1. 程式人生 > >Scala實戰高手****第6課 :零基礎實戰Scala集合操作及Spark源碼解析

Scala實戰高手****第6課 :零基礎實戰Scala集合操作及Spark源碼解析

應用程序 元素 如果 掌握 說明 例如 log 方法 線程

本課內容
1.Spark中Scala集合操作鑒賞
2.Scala集合操作實戰
------------------------------------------------------------------------------------------------------------------------

/**
* 大數據技術是數據的集合以及對數據集合的操作技術的統稱,具體來說:
* 1.數據集合:會涉及數據的搜集、存儲等,搜集會有很多技術,存儲現在比較經典的是使用Hadoop,
* 也有很多情況使用Kafka(消息中間件,也可以作為存儲系統)
* 2.對數據集合的操作技術:目前全球最火爆的是Spark
*
* Spark的框架實現語言是Scala,首選的應用程序開發語言也是Scala,所以Scala對集合以及集合
* 操作的支持就至關重要,且必須異常強大
* 一個補充說明:可能是巧合,Spark中對很多數據的操作算子和Scala中對集合的操作算子是一模一樣的,
* 也就是說你掌握了Scala中集合的操作,基本上就可以直接去開發Spark代碼啦,非常美妙
*
* 關於Scala中數據的創建與操作:
* 1.最最原始的創建數據的方式是形如val array = new Array[Int](5),
* 指定數組的類型Int且其固定長度是5個
* 2.對數組元素訪問的時候,下標的範圍在0到length-1的長度,
* 超過length-1的話,會出現數組越界異常:java.lang.ArrayIndexOutOfBoundsException
* 3.最常用和經典的創建數組的方式是形如:Array[Int](1,2,3,4,5),直接通過Array類名並傳入參數
* 的方式來創建數組實例,在背後的實現是調用Array的工廠方法模式apply來構建出數組及數組的內容
* 4.關於Array本身是在底層的實現是借助了JVM平臺上的Java語言的數組的實現,是不可變的
* 5.如果我們想使用可變數組的話,首先需要導入import scala.collection.mutable.ArrayBuffer,
* 然後使用ArrayBuffer這個可變數組
* 6.關於ArrayBuffer增加元素默認情況下都是在ArrayBuffer末尾增加元素的,效率非常高
* 7.當需要多線程並發操作的時候,把ArrayBuffer轉換成Array就非常重要。其實,即使是Array,
* 其本身雖然不可變動(元素可刪減),但我們可以修改Array中每個元素的內容,所以多線程操作的
* 時候必須考慮並發寫的問題,如果是讀的話就沒關系
* 8.如果想在已經有的數組的基礎上通過作用於每個元素來生成新的元素構成的新數組,
* 則可以通過yield語法來完成,這在大數據中意義重大:
* 第一點:它是在不修改已經有的Array的內容的基礎上來完成的,非常適合大數據處理
* 第二點:在大數據中處理中,例如Spark中業務操作的核心思想就類似於yield,來通過
* function對每個元素操作獲得新的元素構成的新的集合,其實就是新的RDD,
* 例如MapPartionsRDD
* 9.集合的操作往往可以通過豐富的操作算子,例如filter來過濾需要條件的元素,例如
* map來進行每一個元素的加工
*
*/
---------------------
作者:張涵鈞
來源:CSDN
原文:https://blog.csdn.net/shunhack/article/details/52587828
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

Scala實戰高手****第6課 :零基礎實戰Scala集合操作及Spark源碼解析