原创 scala併發編程Actor(二十四)

  scala 2.10.x版本及之前使用的是內置的Actor。scala 2.11.x版本後將Akka作爲併發編程實現。Akka也實現了類似scala Actor的模型,核心概念也是Actor。 概述   scala的Actor類似

原创 特質trait(十六)

簡介   scala和java語言一樣,採用了很強的限制策略,避免了多種繼承的問題。在java語言中,只允許繼承一個超類,該類可以實現多個接口,但java接口有其自身的侷限性:接口中只能包括抽象方法,不能包含字段、具體方法。Scala

原创 提取器Extractor(二十一)

簡介   Scala 提取器是一個帶有unapply方法的對象。unapply方法算是apply方法的反向操作:unapply接受一個對象,然後從對象中提取值。 簡單實例 //提取郵箱地址 object Test { def m

原创 高階函數(十四)

簡介   高階函數(Higher-Order Function)就是操作其他函數的函數。Scala 中允許使用高階函數, 高階函數可以使用其他函數作爲參數,或者使用函數作爲輸出結果。 簡單實例 函數參數 object Test {

原创 正則表達式(十七)

簡介   在程序開發中,經常會碰到需要匹配、查找、替換、判斷字符串,如果用純編碼方式解決的話,難度較大,而且很浪費時間,通過正則表達式可以解決這些問題。   正則表達式並不只屬於某一門程序語言。在衆多的編程語言當中,包括JAVA、Pe

原创 一口氣讀完scala

橫空出世   天下武功,唯快不破。在大數據時代下,能夠進行快速地數據處理與分析已成爲迫切需求。現如今,Spark、Kafka等基於Scala語言實現的框架在大數據生態圈內佔有舉足輕重的地位,它們在一定程度上引領着大數據最前沿技術方向。

原创 集合類之數組(七)

簡介   Scala 語言中提供的數組是用來存儲固定大小的同類型元素。聲明數組是聲明一個就像numbers這樣的變量,然後使用 numbers[0]、numbers[1]、…、numbers[99] 來表示一個個單獨的變量。數組中某個

原创 集合類之Set(十一)

簡介   Scala Set是沒有重複的對象集合,所有的元素都是唯一的。分爲不可變和可變兩類。   默認情況下,Scala 使用的是不可變集合(默認引用 scala.collection.immutable.Set),如果想使用可變集

原创 集合類之元組(十)

簡介   與列表一樣,元組也是不可變的,但與列表不同的是元組可以包含不同類型的元素。   元組的值是通過將單個的值包含在圓括號中構成的。例如: val t = (1, 3.14, "Fred") 也可以使用以下方式來定義: val

原创 函數與閉包(十三)

簡介   Scala 有方法與函數,二者在語義上的區別很小。Scala 方法是類的一部分,而函數是一個對象可以賦值給一個變量。換句話來說在類中定義的函數即是方法。 我們這裏會統稱爲函數。   Scala 中的函數是一個繼承了 Tra

原创 集合類之Map(十二)

簡介   Map(映射)也叫哈希表(Hash tables),是一種可迭代的鍵值對(key/value)結構。所有的值都可以通過鍵來獲取。Map中的鍵都是唯一的。   Map有兩種類型:可變與不可變。區別在於可變對象可以修改,而不可變

原创 scala泛型(二十二)

簡介   scala中可以使用泛型來修飾類、特質和函數,這樣的類、特質和函數可用於操作多種類型數據。比如,Array[T]可以存放指定類型T的數據。 泛型修飾的類 class Animals[A,B](var name: A, var

原创 scala隱式轉換(二十三)

  scala隱式轉換分爲隱式方法、隱式參數、隱式類及隱式對象。 隱式方法   方法命名:文件名爲源文件名2目標文件名,例如:file2RichFile定義隱式轉換的方法名。 class RichFile(val file: File

原创 集合類概述(六)

簡介   scala中的集合分爲兩種,一種是可變的集合,另一種是不可變的集合。 - 可變的集合可以在原集合上進行添加、更新及刪除元素。 - 不可變集合一旦被創建便不能被改變,添加、更新及刪除操作返回的是新的集合,老集合保持不變。

原创 spark基本概念(二)

Application 用戶編寫的Spark應用程序。Application的main方法爲應用程序的入口,用戶通過Spark的API,定義了RDD和對RDD的操作。 Job 提供給Spark運行的作業,一個Application中以A