原创 45.Scala中Context Bounds代碼實戰及其在Spark中的應用源碼解析

一、Context Bounds代碼 實戰 class Pair_Ordering[T : Ordering] (val first : T, val second : T){ //T是泛型/類型, Ordering是泛型類/泛型接口

原创 35.List的map、flatMap、foreach、filter操作代碼實戰

一、對List的map、flatMap實戰 map:對List所有元素執行一個具體的函數 flatMap:對List內部的成員進行map,結果爲List,再對這個結果flat合併,產生合併後的集合 println(List(

原创 37.List的foldLeft、foldRight、sort操作代碼實戰

def main(args: Array[String]): Unit = { println((1 to 100).foldLeft(0)(_ + _)) //初始值爲0,從1一直加到100 println(( 0

原创 44.Scala中View Bounds代碼實戰及其在Spark中的應用源碼解析

一、View Bounds代碼實戰 class Pair_NotPerfect[T <% Comparable[T]] (val first : T, val second :T){ def bigger = if(first.co

原创 技術分享1:canal原理及安裝、使用

最近leader建議小組內每個成員選一個主題,一個月分享一次新技術的學習成果。於是就有了這篇文章的誕生。   0、canal原理 1.canal模擬mysql slave的交互協議,僞裝自己爲mysql slave,向mysql mast

原创 59.Scala中隱式轉換初體驗實戰詳解以及隱式轉換在Spark中的應用源碼解析

隱式轉換的目的:增強類庫功能 在spark或者play框架中,到處可見。 增強類庫的方式: 在Java或者C#中,用工具類或者繼承在Scala中,用隱式轉換或者隱式參數。 import java.io.

原创 50.Scala中Variance變化點及其在Spark中的應用源碼解析

函數在參數上是逆變的,但在返回值上是協變的。 默認是這樣的。 一個具體對象從操作結果看,既要求逆變,又要求協變,這是類型本身要保持不變。 eg:Array[T] 由於scala數組不支持型變,所以Array[Worker]和Array[

原创 55.Scala中Infix Type實戰詳解

中值類型:允許帶有2個參數的類型 object Infix_Types_55 { def main(args: Array[String]): Unit = { //7 object Log {def >>: (d

原创 62.Scala中上下文界定內幕中的隱式參數與隱式參數的實戰詳解及其在Spark中的應用源碼解析

package ce.scala.zhong class Pair_Implicits[T:Ordering](val first:T, val second : T){ def bigger(implicit ordered:O

原创 66.Scala併發編程實戰初體驗及其在Spark源碼中的應用解析

程序宏大時java併發編程變得非常複雜, java併發編程的理念是:基於共享數據和加鎖 java多線程同時訪問一個加鎖數據時易發生死鎖 scala的併發編程:actor。與java實現方式完全不同,act

原创 65.Scala中隱式轉換內幕操作規則揭祕、最佳實踐及其在Spark中的應用源碼解析

隱式磚混的內幕操作規則: 1.必須有關鍵字implicit,可以修飾在類/對象/函數/參數或者變量前 2.作用域規則。隱式轉換在整個作用域中必須是單一的標誌符。相當於id,是唯一的。 3.隱式轉換內容必須

原创 63.Scala中隱式類代碼實戰詳解

package ce.scala.zhong import scala.io.Source import java.io.File object Context_Helper{ implicit class FileEnhan

原创 64.Scala中隱式對象代碼實戰詳解

隱式對象:implicit object xxx package ce.scala.zhong abstract class Template[T]{ //抽象類 T是泛型 def add(x : T, y : T) : T

原创 54.Scala中複合類型實戰詳解

A extends B with C with D A必須同時是B、C、D的類型。比如某個類既具有某種功能,又能序列化 eg:可以規定List或者Array裏的元素, 比如必須實現序列化接口又必須實現某個

原创 68.Scala併發編程原生線程Actor、Cass Class下的消息傳遞和偏函數實戰解析及其在Spark中的應用源碼解析

package ce.scala.zhong //6 import scala.actors.Actor import scala.actors.Actor._ //用case class 或者case object作爲消息來傳遞,